GCC 4.5 không cho phép tôi làm điều này:Tôi có thể mặc định một hàm tạo riêng trong phần thân lớp hay không?
class foo {
public:
foo() = default;
private:
foo(foo const&) = default;
foo& operator=(foo const&) = default;
};
Nó phàn nàn rằng:
error: 'foo::foo(const foo&)' declared with non-public access cannot be defaulted in the class body
error: 'foo& foo::operator=(const foo&)' declared with non-public access cannot be defaulted in the class body
Tuy nhiên, GCC 4.6 cho phép tôi làm điều đó. Cái nào đúng?
Đôi khi nó chỉ là tốt đẹp để được mặc định trong tư nhân ... –
"Đi bộ trên mặt nước và phát triển phần mềm từ một đặc điểm kỹ thuật rất dễ dàng nếu cả hai đều bị đóng băng." - E. Berard. –