Uživatelské nástroje

Nástroje pro tento web


prog_cpp

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
prog_cpp [2016/05/20 12:46] – [Třídy] djbuldogprog_cpp [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 57: Řádek 57:
     * Někdy není v době překladu jasné, jestli se má zavolat metoda podtřídy nebo nadtřidy.      * Někdy není v době překladu jasné, jestli se má zavolat metoda podtřídy nebo nadtřidy. 
     * Klíčové slovo virtual tento problém řeší až při běhu.     * Klíčové slovo virtual tento problém řeší až při běhu.
 +    * virtuální destruktor
 +      * je potřeba v Base třídě (ze které se dědí) pokud se používá dynamická alokace objektů
 +      * jinak hrozí, že se bude volat pouze destruktor Base třídy - viz triky
     * Příklad problému bez virtual:     * Příklad problému bez virtual:
  
Řádek 117: Řádek 120:
  
 http://stackoverflow.com/questions/5313322/c-cast-to-derived-class http://stackoverflow.com/questions/5313322/c-cast-to-derived-class
-<code> +<code c++
-lass Animal { /* Some virtual members */ }+class Animal { /* Some virtual members */ }
 class Dog: public Animal {}; class Dog: public Animal {};
 class Cat: public Animal {}; class Cat: public Animal {};
Řádek 142: Řádek 145:
 </code> </code>
  
-<code>+<code c++>
 Animal   animal = cat;    // This works. But it slices the cat part out and just Animal   animal = cat;    // This works. But it slices the cat part out and just
                           // assigns the animal part of the object.                           // assigns the animal part of the object.
Řádek 150: Řádek 153:
 </code> </code>
  
-<code>+<code c++>
 std::vector<Animal*>  barnYard; std::vector<Animal*>  barnYard;
 barnYard.push_back(&dog); barnYard.push_back(&dog);
prog_cpp.1463741172.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki