Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
'
this': používá se v seznamu inicializátorů základních členů.
Poznámky
Ukazatel this je platný pouze v rámci nestatických členských funkcí. Nedá se použít v seznamu inicializátorů pro základní třídu.
Konstruktory základní třídy a členské konstruktory třídy jsou volána před this konstruktorem. Tento vzor je stejný jako předání ukazatele na nekonstruovaný objekt jinému konstruktoru. Pokud tyto ostatní konstruktory přistupují k některým členům nebo volají členské funkce this, výsledek není definován. Ukazatel byste neměli používat this , dokud nebude dokončena všechna konstrukce.
Toto upozornění je ve výchozím nastavení vypnuté. Další informace najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá.
Example
Následující příklad vygeneruje C4355:
// C4355.cpp
// compile with: /w14355 /c
#include <tchar.h>
class CDerived;
class CBase {
public:
CBase(CDerived *derived): m_pDerived(derived) {}
~CBase();
virtual void function() = 0;
CDerived * m_pDerived;
};
class CDerived : public CBase {
public:
CDerived() : CBase(this) {} // C4355 "this" used in derived c'tor
virtual void function() {}
};
CBase::~CBase() {
m_pDerived -> function();
}
int main() {
CDerived myDerived;
}