Chúng khác nhau chỉ ghi lại chẩn đoán được sản xuất. Nếu bạn thực hiện nó private
, một vi phạm truy cập bổ sung và không cần thiết được báo cáo:
class A
{
public:
A() = default;
private:
A(const A&) = delete;
};
int main()
{
A a;
A a2=a;
}
kết quả trong những điều sau thêm đầu ra từ GCC 4.8:
main.cpp: In function 'int main()':
main.cpp:6:5: error: 'A::A(const A&)' is private
A(const A&) = delete;
^
main.cpp:12:10: error: within this context
A a2=a;
^
phương pháp do đó đề nghị của tôi để luôn luôn đảm xóa public
.
Nguồn
2013-09-21 09:46:04
Tôi đặt các chức năng đã xóa của mình ở chế độ công khai, vì đó là ** thông báo ** cho người dùng công khai rằng nó không thể được tạo mặc định (trong trường hợp của bạn). – Nawaz