118 TIF

118 TIF



~Napis(void)

{

if(m_pch)

delete m_pch;

}

};

Dostęp do konstruktorów można kontrolować zamieniając je na konstruktory prywatne. We fragmencie „Po” konstruktor kopiowania jest dostępny tylko funkcjom składowym klasy, a kod zewnętrzny nie może tworzyć kopii.

Aby uzyskać jeszcze większą kontrolę, można utworzyć prywatny konstruktor klasy. Wówczas jedynym sposobem utworzenia klasy przez użytkownika byłoby użycie służącej do tego celu funkcji publicznej napisanej przez nas.

Przykład: RefCounted::newRefCounted() w pliku access.cpp

Tworzenie konstruktora kopiowania podczas przydzielania pamięci

unikanie nieoczekiwanych wyników

Przed

dass Napis

{

private:

const int m_cchTest; int m_cch; char *m_pch; public:

Napis(void) : m_cch(0), m_cchTest(10)

{

m_pch = NULL;

}

~Napis(void)

{

if(m_pch)

delete m_pch;

}



Wyszukiwarka

Podobne podstrony:
081 TIF Klasy ~Napis(void){ if(m_pch) delete m_pch;} }; Wszystkie zmienne składowe trzeba inicjalizo
~Napis(void){ if(m_pch) delete m_pch;} }; Po class Napis{ private: const int m_cchTest; int
063 TIF $ŁOW::~SŁOW() { if(m_pstrumień) delete m_pstrumieri; } Przed zwolnieniem pamięci należy się
068 TIF unikanie nieoczekiwanych wynikówUżywanie deklaracji const *Przed void Napis::lnicjNapis(char
070 TIF virtua! ~lntelWskPodst(){ rf(m_pt) delete m_pt; m_pt = NULL;} T &operator*() const{ retu
KlasyPo class Napis { private: const int m_cchTest; public: Napis(void) : m_cchTest(10){}}; Zgodnie
pkmkol24 tif <11 tii i/ 4# #r *if <1/ Ba- - (w^Toa^1 j W-ię^> ^ Któl    ;

więcej podobnych podstron