Tôi đã nói những điều sau đây là có thể do sự thay đổi trong C++ 11:C++ 11 kêu gọi xây dựng từ constructor của cùng loại lớp
class SomeType {
int number;
public:
SomeType(int new_number) : number(new_number) {}
SomeType() : SomeType(42) {}
};
Nhưng khi tôi cố gắng xây dựng tôi nhận được một lỗi:
"SomeType" is not a nonstatic data member or base class of class "SomeType"
error C2614: 'SomeType' : illegal member initialization: 'SomeType' is not a base or member
Tính năng này chưa được hỗ trợ trong Visual Studio 2010 chưa? Tôi có cần phải cấu hình một cái gì đó để có được điều này để xây dựng? Chuyện gì thế?
Để tham khảo trong tương lai, chúng được gọi là _delegating constructors_. – ildjarn
bằng cách này, nó được hỗ trợ trong gcc (mingw-w64, devC++, mã :: khối, mingw, DJGPP) –
@JimMichaels: báo cáo IDE (mã :: khối) là một chút đáng ngạc nhiên. Tôi sử dụng code :: blocks và clang ... –