Compiler nem teszi lehetővé, hogy meghatározzák a fordító által generált konstruktor

szavazat
3

Próbálom meghatározni a kivitelező, hogy fordító generál automatikusan és ezáltal az egy fordítási hiba. Itt van a kód:

class myclass
 {
   public:
       void Test_Func()
       {}
 };
myclass::myclass()
{
}

Egy fordító bármit mellett egy egyszerű osztály, mint fent. Itt van a hiba, hogy kaptam a MSVC fordító:

error C2600: 'myclass::myclass' : cannot define a compiler-generated special member function (must be declared in the class first)
A kérdést 12/06/2011 13:50
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
3

Nem lehet meghatározni a felhasználó által generált alapértelmezett konstruktor, ha még nem nyilvánították. A fordítóprogram már meg van határozva, ezért megadtuk több alapértelmezett konstruktor. Meg kell nyilvánítja az alapértelmezett konstruktor, ha szeretné meghatározni egy-, mint bármely más funkciót.

Válaszolt 12/06/2011 13:52
a forrás felhasználó

szavazat
0

Próbáld így:

class myclass { public: myclass(); void Test_Func() {} }; myclass::myclass() { }
Válaszolt 12/06/2011 13:53
a forrás felhasználó

szavazat
0

Ha megy a függvényt, meg kell venni az osztály nyilatkozatot, valahogy így:

class myclass { public: myclass(); void Test_Func() {} }; myclass::myclass() { }
Válaszolt 12/06/2011 13:54
a forrás felhasználó

szavazat
8

A szintetizált kivitelező egyszerre bejelentett és meghatározott. Lehet, hogy nem határozza meg magát.

Itt van, hogy állapítsa meg a saját kivitelező annak érdekében, hogy egy végrehajtási.

[special] (2003 megfogalmazás, 12/1) szerint:

Az alapértelmezett konstruktor (12,1), másolja a kivitelező, valamint másolatát értékadó operátor (12,8), és destruktor (12,4) különleges tagfüggvény. A végrehajtás hallgatólagosan nyilvánítja ezeket tagfüggvény egy osztály típusú, ha a program nem kifejezetten nyilvánítja őket, kivéve a 12.1. A végrehajtás hallgatólagosan határozza meg őket, ha azokat , meghatározott 12,1, 12,4 és 12,8. A programok nem határozza meg hallgatólagosan deklarált különleges tagsági függvények.

Válaszolt 12/06/2011 13:54
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more