Ostrzeżenie kompilatora (poziom 4) C4435
'klasa1': Układ obiektu pod /vd2 zmieni się ze względu na wirtualną klasę podstawową 'klasa2'
To ostrzeżenie jest domyślnie wyłączone. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone.
W domyślnej opcji kompilacji /vd1 klasa pochodna nie ma vtordisp
pola dla wskazanej bazy wirtualnej. Jeśli /vd2 lub #pragma vtordisp(2)
jest w mocy, vtordisp
pole będzie obecne, zmieniając układ obiektu. Może to prowadzić do problemów ze zgodnością binarną w przypadku kompilowania modułów z różnymi vtordisp
ustawieniami.
Przykład
Poniższy przykład generuje kod C4435.
// C4435.cpp
// compile with: /c /W4
#pragma warning(default : 4435)
class A
{
public:
virtual ~A() {}
};
class B : public virtual A // C4435
{};
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla