C++:如何从外部调用父类函数
C++: How to call a parent class function from outside
我有:
class A{
public:
virtual void foo();
};
class B : public A{
public:
void foo();
};
B *ptr = new B();
我想使用"ptr"指针直接调用A的foo()
。
当我尝试时
(A*)ptr->foo();
它仍然调用B版本的CCD_ 2。如何调用A的版本?
这可能吗?有哪些替代方案?非常感谢。
使用::
作用域解析形式命名函数时,会调用命名函数,就好像它不是虚拟的一样。
ptr->A::foo();
您需要公开您的函数。您只需进行以下更改即可做到这一点:
class A{
public:
virtual void foo();
};
class B : public A{
public:
void foo();
};
如果不这样做,这些功能将自动成为私有的,并且无法从"外部"访问。
相关文章:
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 调用父类函数来比较父类和子类
- 如何从派生类实例调用父类重载函数
- 尝试在 C++ 中的子类中调用父类的受保护函数
- 当调用子类的析构函数时,是否也会调用父类的析构函数
- C++:如何从外部调用父类函数
- 从派生类调用父类的模板函数
- QThreadPool调用父类QRunnable的纯虚拟函数
- 传递对象的地址会导致调用父类构造函数
- 函数调用父类方法而不是子类方法
- 加载调用父类的 DLL 和子 dll
- 使用派生类调用父类的模板化函数重载
- C++继承:调用父类构造函数
- 为什么派生类对象在没有参数的情况下自动调用父类构造函数
- C++父类,调用子类中的方法,调用父类方法
- 如何调用父类类型列表的子类的方法?C++
- 委托和调用父类构造函数:如何做到这两点?
- 如何调用父类复制构造函数
- 从对象指针调用父类方法
- 调用父类的构造函数给出未定义