Minden osztálynak van alapértelmezett C++ konstruktora?
Minden osztálynak van alapértelmezett C++ konstruktora?

Videó: Minden osztálynak van alapértelmezett C++ konstruktora?

Videó: Minden osztálynak van alapértelmezett C++ konstruktora?
Videó: Magasszintű programozási nyelvek II. - 7. előadás 2024, December
Anonim

Alapértelmezett konstruktorok ( C++ csak)

A az alapértelmezett konstruktor a konstruktőr hogy akár van nincs paraméter, vagy ha van van paraméterek, összes a paramétereket alapértelmezett értékeket. Ha nincs felhasználó által meghatározott konstruktőr létezik a osztály A és egy van szükséges, a fordító implicit módon deklarálja a alapértelmezett paraméter nélküli konstruktőr A::A().

Hasonlóképpen, szükség van egy alapértelmezett C++ konstruktorra?

A fordító implicit módon deklarálja alapértelmezett konstruktor ha a programozó nem adja meg, akkor a belépéskor határozza meg szükség . Fordító definiálva alapértelmezett konstruktor van kívánt nak nek csináld az osztálybelsők bizonyos inicializálása. A fordítónak kódot kell beillesztenie a meghíváshoz alapértelmezett konstruktorok alaposztály/beágyazott objektum.

Tudja azt is, hogy egy osztálynak nincs C++ konstruktora? Ha a te osztálynak nincsenek konstruktorai , C++ lesz automatikusan létrehoz egy nyilvános alapértelmezett értéket konstruktőr neked. Ezt néha implicitnek nevezik konstruktőr (vagy implicit módon generált konstruktőr ).

Az is felmerülhet, hogy minden osztálynak van alapértelmezett konstruktora?

Igen az összes osztályok amelyet java-ban hozunk létre, felér alapértelmezett konstruktor paraméterek nélkül. De amint létrehozunk egy paraméterezett konstruktőr hogy alapértelmezett konstruktor get eltávolították.

Hogyan lehet hívni egy alapértelmezett konstruktort C++-ban?

Konstruktőr ugyanaz a neve, mint magának az osztálynak. Konstruktorok nincs visszatérési típusa. A konstruktőr objektum létrehozásakor automatikusan meghívódik. Ha nem adjuk meg a konstruktőr , C++ fordító generál a alapértelmezett konstruktor nekünk (nem vár paramétereket, és üres a törzse).