c – 虚函数问题

c – 虚函数问题,第1张

概述我有两节课: class x {public: virtual void hello() { std::cout << "x" << std::endl; }};class y : public x {public: void hello() { std::cout << "y" << std::endl; }}; 有人可以解释为什么以下两个调用hell 我有两节课:
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 – 虚函数问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1241903.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存