Если я хочу, чтобы запретить строительство копировать/назначение, то есть:Публичный удаленный или закрытый по умолчанию ctor/assign/copy ctor?
class foo
{
public:
foo(const foo&) = delete;
foo& operator = (const foo&) = delete;
};
То же, что:
class foo
{
private:
foo(const foo&) = default;
foo& operator = (const foo&) = default;
};
Какой это правильный путь, и почему?
в случае последнего 'Foo' является разрешено копировать себя –
в то же самое относится к классам/методам друзей, все они имеют доступ также –