关于子类调用父类的虚函数(protected:)的问题?
我有一个类,例如:
class base
{
virtual void onPress();//写一个响应键盘的函数
}
class subclass : public base
{
virtual void onPress()
}
void subclass::onpPress()
{
if()
{}//写一个判断的过程,比方说,输入是“1”,就调用这个过程,
else return (base*)this->onPress //返回父类的虚函数,将this指针转化
想法大概就是这样,但编译不起来啊,我的环境是eclipse cdt。求救。
分不多,学习交流为主,谢谢大家。
[解决办法]
::
直接使用域操作符 ::onPress()
[解决办法]
是要这样的效果吗?没完全明白你的意思
#include <iostream>using namespace std;class base{public: virtual void onPress() { cout<<"Base onPress()"<<endl; }};class subclass : public base{public: virtual void onPress();};void subclass::onPress(){ int i; cin>>i; if (i == 1) { base::onPress(); } else { cout<<"Subclass onPress()"<<endl; }}int main(){ subclass sc; sc.onPress(); return 0;}
[解决办法]
子类访问父类的东东,就用这 ::
没问题,没啥好解释的,就当龟腚好了
[解决办法]
void subclass::onPress(){ int i; cin>>i; //提示用户输入 if (i == 1) //如果为1 { base::onPress(); //调用基类的虚函数 } else //如果不为1,调用子类的虚函数 { cout<<"Subclass onPress()"<<endl; }}