Objektově orientované paradigma programování převládá ve všech moderních nástrojích a jazycích pro vytváření softwaru. Průmyslovým standardem je dnes objektově orientovaný programovací jazyk C ++. Instanci třídy v C ++ můžete vytvořit několika různými způsoby.
Je to nutné
překladač C ++
Instrukce
Krok 1
Vytvořte instanci třídy jako automatickou proměnnou v místním oboru definovaném funkcí, metodou třídy nebo blokem příkazu. Použijte deklarativní nebo imperativní definici objektu třídy na vybraném místě ve vašem programu. V případě potřeby proveďte explicitní volání libovolného konstruktoru s parametry. Vytvořte objekt pomocí kódu podobného tomuto: void CMyClass:: SomeMethod () {COtherClass oSomeObject1; // vytvoření objektu pomocí výchozího konstruktoru COtherClass oSomeObject2 (1980, "Victor V. Vakchturov"); // vytvoření objektu pomocí konstruktoru s parametry} Paměť pro objekty tříd vytvořených podobným způsobem, jako pro jakékoli jiné automatické proměnné, je alokována na zásobníku. Proto při ukončení oboru a odebrání rámce zásobníku bude objekt zničen (s voláním destruktoru).
Krok 2
Vytvořte instanci třídy v haldě pomocí nového operátoru. Definujte proměnnou ukazatele typu na objekty třídy, která má být vytvořena. Dejte mu hodnotu, která je výsledkem vyhodnocení nového operátora. Zavolejte příslušného konstruktora. Použijte fragment kódu podobný tomuto: CSomeClass * poSomeObject; // definice ukazatele na objekty třídy CSomeClasspoSomeObject = nový CSomeClass; // Vytvořit objekt třídy CSomeClass * poSomeObject_2 = nový CSomeClass (111, "3V"); // tvorba s voláním konstruktoru s parametry Při vytváření objektů touto metodou se používá mechanismus přidělení paměti definovaný novým operátorem (pokud není přepsán a není nastavena jeho vlastní alokační funkce), takže adresa nový objekt není předem znám. Všechny objekty vytvořené tímto způsobem musí být explicitně odstraněny pomocí operátoru odstranění.
Krok 3
Vytvořte instanci třídy pomocí nového operátoru na samostatném bloku paměti. Použijte kód podobný tomuto: void * p0 = malloc (sizeof (CSomeClass)); // alokace paměti void * p1 = malloc (sizeof (CSomeClass)); // přidělení paměti new (p0) CSomeClass; // inicializovat objekt na přidělené paměti (výchozí konstruktor) new (p1) CSomeClass (111, "abc"); // inicializace objektu (konstruktor s parametry) Před zničením objektů vytvořených touto metodou byste měli explicitně zavolat jejich destruktor: ((CSomeClass *) p0) -> ~ (); Vytváření objektů tímto způsobem se používá hlavně ve třídách kontejnerů šablon různé knihovny (například STL).