Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
'type', 'file1' ve 'file2' içinde farklı boyuta sahip: size_1 ve size_2 bayt
Açıklamalar
İki dosyada başvuruda bulunup tanımlanan bir dış değişkenin bu dosyalarda farklı türleri vardır ve derleyici, dosya1'deki değişkenin boyutunun, dosya2'deki değişkenin boyutundan farklı olduğunu belirledi.
C++ için bu uyarının yayılabildiği önemli bir durum vardır. İki farklı dosyada aynı ada sahip sınıf türleri bildirirseniz, bu bildirimler sanal işlevler içeriyorsa ve bildirimler aynı değilse, derleyici sanal işlev tabloları için uyarı C4744 yayımlayabilir. Uyarı, aynı tür için iki farklı boyutlu sanal işlev tablosu olduğundan ve bağlayıcının yürütülebilir dosyaya dahil etmek için bunlardan birini seçmesi gerektiğinden oluşur. Programınızın yanlış sanal işlevi çağırması olasıdır.
Bu uyarıyı çözmek için aynı tür tanımını kullanın veya türler veya değişkenler için farklı adlar kullanın.
Örnek
Aşağıdaki örnek C4743 oluşturur. Derlemek için her iki dosyayı da aynı klasöre yerleştirin ve ardından bu komutu bir geliştirici komut isteminde çalıştırın:
cl /EHsc /W1 /GL /O2 C4743a.cpp C4743b.cpp
Kaynak dosya C4743a.cpp:
// C4743a.cpp
class C {
public:
virtual void f1(void);
virtual void f2(void);
virtual void f3(void);
};
void C::f1(void) {}
void C::f2(void) {}
void C::f3(void) {}
C q;
Kaynak dosya C4743b.cpp:
// C4743b.cpp
class C {
public:
virtual void f1(void);
virtual void f2(void);
virtual void f3(void);
virtual void f4(void);
virtual void f5(void);
};
void C::f4(void) {}
void C::f5(void) {}
C x;
int main() {}
Bu sorunu çözmek için sınıflardan birini yeniden adlandırın C .