powiedziano mi następujące było możliwe ze względu na zmiany w C++ 11:C++ 11 wywołanie konstruktora z konstruktora typu samej klasy
class SomeType {
int number;
public:
SomeType(int new_number) : number(new_number) {}
SomeType() : SomeType(42) {}
};
Ale gdy próbuję zbudować otrzymuję komunikat o błędzie:
"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
Czy ta funkcja nie jest jeszcze obsługiwana w Visual Studio 2010? Czy muszę skonfigurować coś, aby to zbudować? Co jest nie tak?
W celu późniejszego wykorzystania, są one znane jako _delegating constructors_. – ildjarn
przy okazji, jest on obsługiwany w gcc (mingw-w64, devC++, code :: blocks, mingw, DJGPP) –
@JimMichaels: raportowanie IDE (code :: blocks) jest nieco zaskakujące. Używam kodu :: bloki i klang ... –