
class x {public: virtual voID hello() { std::cout << "x" << std::endl; }};class y : public x {public: voID hello() { std::cout << "y" << std::endl; }}; 有人可以解释为什么以下两个调用hello()打印不同的消息?他们为什么不打印“y”?是因为第一个是副本而第二个实际指向内存中的对象?
int main() { y a; x b = a; b.hello(); // prints x x* c = &a; c->hello(); // prints y return 0;}解决方法 是的,你是对的 x b = a;
调用复制构造函数(b IS为’x’)
x& b = a;
分配引用并使用覆盖(b实际上仍然是’y’)
总结以上是内存溢出为你收集整理的c – 虚函数问题全部内容,希望文章能够帮你解决c – 虚函数问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)