void replace_bar(const Bar& bar2) {
Bar::operator=(bar2);
}
В других новостях вы пропускаете return *this;
в Bar::operator=
, и если все, что вы хотите сделать, это предотвратить копирование Foo
, вам не следует определять конструктор копирования и оператор присваивания, только объявлять их. Таким образом, даже если вы попытаетесь использовать их из класса, вы получите ошибку (хотя и ссылку, а не ошибку компиляции).
class Foo {
Foo(const Foo&); // no body
Foo& operator=(const Foo&); // ditto
public:
Foo() { }
};