子类怎么调用到父类的方法
子类怎么调用到父类的方法?如:
CBase *A=new CA;
CA是派生类。然后CBase类中的成员函数怎么调用到CA类的成员函数? 用CA::func()这样我感觉不太好,有更好的办法吗?
[解决办法]
虚函数
[解决办法]
直接调用啊,有什么不好,只要不是父类的private成员。
一般谁也不会把方法设置为private啊。
[解决办法]
CBase类中的成员函数怎么调用到CA类的成员函数
这个不是基类调派生类的成员函数?
[解决办法]
class Base{public: void f(){} virtual void func()=0;};class CA:public Base{ void func(){printf("a");};Base* p = new CA;p->f();
[解决办法]
class Base{public: void f(){} virtual void func()=0;};class CA:public Base{ void func(){printf("a");}};Base* p = new CA;p->f();
[解决办法]
CBase *A=new CA;
A->funcation();
funcation函数属于CA中的
如果是我说的这个意思的话,不就是需要把CBase类中funcation函数生命成虚函数,然后在CA类中重新实现funcation函数不就OK了
[解决办法]
我是要在基类的成员函数里调用父类的方法啊
没看懂。。
[解决办法]
难道是打算在派生类的成员函数里调用父类的方法。
[解决办法]
#include <iostream>using namespace std;class Base { public: void f() { cout << "this is Base Class" << endl; } };class CA:public Base { Base B; public: void test(); void func() { printf("a"); } };void CA::test(){ B.f();}int main(){ CA p; p.test(); return 0;}
[解决办法]
你的概念首先是反的,当我们说子类时一般指派生类,而父类是基类,所以大家才迷糊了
其次,从基类指针调用派生类函数只有两种方法:
1。如果是虚函数,直接调用
2。转换为派生类指针再调用
[解决办法]