Рассмотрим следующее:
class A {
public:
const int c; // must not be modified!
A(int _c)
: c(_c)
{
// Nothing here
}
A(const A& copy)
: c(copy.c)
{
// Nothing here
}
};
int main(int argc, char *argv[])
{
A foo(1337);
vector<A> vec;
vec.push_back(foo); // <-- compile error!
return 0;
}
Очевидно, что конструктора копирования недостаточно. Что мне не хватает?
EDIT: Ofc. Я не могу изменить this- > c в методе operator =(), поэтому я не вижу, как будет использоваться оператор =() (хотя требуется std::vector).