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 11:57] – [Třídy] djbuldogprog_cpp [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 23: Řádek 23:
   * objekt = dynamická/statická instance třídy   * objekt = dynamická/statická instance třídy
  
 +  * pokud ve třídě máme nějakou const položku, musíme ji inicializovat v konstruktoru, jinak to nejde
 +<code cpp>
 +class MyClass {
 +
 +  private:
 +    const int number;        // deklarace privatni konstantni promenne
 +    MyClass():number(10) {}  // konstruktor s definici promenne
 +  
 +}
 +</code>
 +
 +  * static const se inicializuje takto
 +
 +<code cpp>
 +class MyClass {
 +
 +  private:
 +    static const int number;        // deklarace
 +}
 +
 +const int MyClass::number = 10;     // definice
 +</code>
 ==== dědičnost ==== ==== dědičnost ====
  
Řádek 35: Řá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 95: Řá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 120: Řá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 128: Řá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.1463738269.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki