在父类中,我们使用关键字"virtual"来声明虚函数。子类通过重写这些虚函数来提供自己的特定实现。 以下是一个简单的示例代码,用于说明父类指针调用子类方法的原理: ``` #include <iostream> class Parent { public: virtual void speak() { std::cout << "父类的speak方法" << std::endl; } }; class ...
如果父类里的虚函数是纯虚函数,则父类是个抽象类,子类要想能够被实例化,则必须重写该纯虚函数.用父类指针访问该纯虚函数的时候,访问到的是子类里重写了的函数. 再有一个要注意的是析构函数要声明为虚函数,这样在delete父类指针的时候,才会调用实例化的子类的虚函数,否则只会调用父类的析构函数,造成子类的剩...
当父类的指针变量指向子类对象时,父类的指针变量可以直接调用子类的方法。A.正确B.错误的答案是什么.用刷刷题APP,拍照搜索答疑.刷刷题(shuashuati.com)是专业的大学职业搜题找答案,刷题练习的工具.一键将文档转化为在线题库手机刷题,以提高学习效率,是学习的生产力工具
class P{ public: void x(){ } } class S : public P{ void y(){ x(); // 报错 this->x(); // 正确 } }我发现在子类函数中调用父类的方法, 即使没有发生名字覆盖或者虚函数改写, 感觉有点奇怪啊.. 还有继承自父类的属性, 也是这样...Update : 这两个类都是模板类.c++ 有用关注2收藏 回...