mã sau đây đưa ra một lỗi biên dịch (ít nhất là khi sử dụng MS VS 2008) cho dòng "e = f" trong main():lỗi C2582: 'operator =' chức năng không có sẵn trong 'B'
lỗi C2582: 'operator =' chức năng không có sẵn trong 'B'
class A {
public:
A() { }
static const double x;
};
const double A::x = 0.0;
class B {
public:
B() : x(0.0) { }
const double x;
};
int main(int argc, char *argv[])
{
A c,d;
B e,f;
c = d;
e = f;
return 0;
}
toán tử gán mặc định nên được tạo ra cho cả hai lớp, A và B?
trong 12.8.10: "Nếu định nghĩa lớp không khai báo rõ ràng nhà điều hành gán bản sao , một tuyên bố hoàn toàn".
Có bạn đã trả lời câu hỏi của riêng bạn.Bạn nhận được một huy hiệu (nhưng không có đại diện) nếu bạn chấp nhận câu trả lời của bạn. – CashCow