您的位置:首页 > 其它

多态中虚函数表的地址是所有对象共享的

2012-06-08 00:50 190 查看
class parent{
public:
virtual test(){
cout < < "from parent " < <endl;
};
};

class son1:public parent{
public:
virtual test(){
cout < < "from son1 " < <endl;
};
};

class son2:public parent{
public:
virtual test(){
cout < < "from son2 " < <endl;
};
};

void main(){
son1 s1;
son2 s2;
parent& p=s1;
p.test();
p=s2; //(1)没有改变
p.test();

int j=1, k=2;
int & i = j;
cout < <i < <endl;
i = k; //(2)却改变了
cout < <i <endl;
}

输出结果:
from son1
from son1
1
2

如果理解了在多态中虚函数表的地址是所有对象共享的。

对这个结果就不会困惑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐