首页 > 关于C++虚拟继承的问题请教

关于C++虚拟继承的问题请教

#include <iostream>
using namespace std; 
class A{ 
public: 
     virtual void f1(){}; 
}; 
class B: public virtual A{ 
     virtual void f2(){}; 
}; 
int main(){ 
     cout << sizeof(A) << endl; 
     cout << sizeof(B) << endl; 
} 

这个程序在32位机器上,打印的是4和12。g++下面后两个打印是8和8。没有用c++11。求指导虚继承内存具体如何分配?(与编译器无关的情况)


你问的这个问题刚好就是“与编译器有关的情况”,完全是编译器的实现细节。


http://stackoverflow.com/questions/4766323/how-to-determine-sizeof-class-with-virtual-functions

简而言之就是取决于实现。

【热门文章】
【热门文章】