我對繼承的虛擬類有以下代碼,並以某種方式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;
}