class AA
{
public:
AA():i(1){}
int i;
};
class BB: public AA
{
public:
BB():j(2){}
int j;
};
int ff(AA* p, int count)
{
int total=0;
for(int i=0; i <count; ++i)
{
total+=p++->i;
}
return (total);
}
int main()
{
BB b[11];
cout << ff(b,10) << endl;
return 0;
}
以上程序段输出为何是15?
另外, 我若用虚继承, 即 class BB: virtual public AA{...}
其他程序不变, 输出是一个很大的数字, 为什么? |