Derleyici Uyarısı (düzey 1 ve düzey 4, kapalı) C4355
'
this
': temel üye başlatıcı listesinde kullanılır
İşaretçi this
yalnızca statik olmayan üye işlevlerinde geçerlidir. Bir temel sınıf için başlatıcı listesinde kullanılamaz.
Temel sınıf oluşturucuları ve sınıf üyesi oluşturucuları oluşturucudan önce this
çağrılır. Bu desen, bir işaretçiyi yapılandırılmamış bir nesneye başka bir oluşturucuya geçirmekle aynıdır. Diğer oluşturucular üzerinde herhangi bir üyeye erişirse veya üye işlevlerini this
çağırırsa sonuç tanımlanmamış olur. Tüm inşaat tamamlanana kadar işaretçiyi this
kullanmamalısınız.
Bu uyarı varsayılan olarak kapalıdır. Daha fazla bilgi için bkz . Varsayılan Olarak Kapalı Olan Derleyici Uyarıları.
Aşağıdaki örnek C4355 oluşturur:
// 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;
}
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin