У меня есть следующий код для унаследованных виртуальных классов и как-то inh::P1
составлен как char
. Может кто-нибудь объяснить, почему компилятор выбирает char
за int
за inh::P1
в этом примере? Благодаря!поиск по виртуальному наследованию
#include <iostream>
class myClass {public: typedef int P1;};
class myClassdef : virtual public myClass {};
class myClass2 : virtual public myClass { public: typedef char P1;};
class inh : public myClassdef, public myClass2 {};
int main()
{
std::cout << sizeof(inh::P1) << std::endl;
return 0;
}