109
};
class NiePochodna
{
private:
int m_i; float m_f1; float m_f2; public:
NiePochodnaO : m_i(0), m_f1 (O.Of), m_f2(0.555f)
{
}
};
void TestABC(void)
{
printf("Rozmiar klasy pochodnej = %d\n", sizeof(Pochodna)); printf("Rozmiar klasy, niebędącej klasą pochodną = %d\n", sizeof(NiePochodna)
);
}
Zauważmy, że informacja o dziedziczeniu zajmuje cztery bajty na instancję klasy. W podanym kodzie źródłowym klasa Pochodna zajmuje 20 bajtów, podczas gdy klasa NiePochodna zajmuje 12 bajtów. Różnica jest spowodowana tym, że klasa Pochodna dziedziczy po dwóch klasach.
Przykład: klasa Derived w pliku inherit2.h
Wielodziedziczenie po abstrakcyjnych klasach podstawowych nie powoduje niejednoznaczności
kompilowanie kodu
Kod źródłowy
class Interfejsl
{
public:
virtual void Drukujlnt(void) = 0;
};
class Interfejs2
{
Wyszukiwarka
Podobne podstrony:
19 p07 #include <stdio.h> class próba{ private: int *pi_Dane; public: próba(); -próba()19 p08 #include <stdio.h> class próba { private: int *pi_Dane; public: próba(); -próba()Po class Uwaga { private: int m_nLicznik; public: Uwaga(void) : m_nLicznik(1){} void UstawLicznik(inclass Punkt{ private int x, y; public void Przesuń(int dx, int dy){ x += dx; y += dy;} public Punkt(Język C++ - praktyczne wskazówki Po class Napis { private: const int m_cchTest; int m_cch; charKlasyPo class Napis { private: const int m_cchTest; public: Napis(void) : m_cchTest(10){}}; Zgodnie~Napis(void){ if(m_pch) delete m_pch;} }; Po class Napis{ private: const int m_cchTest; intPo class Napis{ private: const int m_cchTest; int m_cch; char *m_pch; void lnicjNapis(const cha56224 pp1 (3) ĆWICZENI* I. Deklaracje: int i; float f; int *p; int tabDSC00393 (17) Rozpatrzmy przykład: i lit * wił, i Wi2; //def. wskaźników na obiekty int float * wf;więcej podobnych podstron