c++ virtual关键字没用

为什么我用code::block集成开发环境 virtual完全没有用啊  ,比如我写一个类B继承类A, 析构函数不加virtual照样继承给子类 ,  A和B类中有一个函数print()打印出类名   A *a=new B; B b;这样  我调用 b->print() 和 a->print() 打印出两个this is b, 在print()函数前加上一个virtual关键字还是这样。。。这是怎么回事啊

kkkbbb
浏览 1379回答 2
2回答

喃喃说

你应该好好看看覆盖和隐藏这块儿

onemoo

A *a,这个a是指向A类型的,通过a访问的print肯定是A的版本,不会打印出“this is b”的。我也验证过了,请再检查下代码是否有误。
打开App,查看更多内容
随时随地看视频慕课网APP