子类怎么调用到父类的方法
子类怎么调用到父类的方法?如:
CBase *A=new CA;
CA是派生类。然后CBase类中的成员函数怎么调用到CA类的成员函数? 用CA::func()这样我感觉不太好,有更好的办法吗?
[解决办法]
虚函数
[解决办法]
直接调用啊,有什么不好,只要不是父类的private成员。
一般谁也不会把方法设置为private啊。
[解决办法]
CBase类中的成员函数怎么调用到CA类的成员函数
这个不是基类调派生类的成员函数?
[解决办法]
- C/C++ code
class Base{public: void f(){} virtual void func()=0;};class CA:public Base{ void func(){printf("a");};Base* p = new CA;p->f();
[解决办法]
- C/C++ code
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了
[解决办法]
我是要在基类的成员函数里调用父类的方法啊
没看懂。。
[解决办法]
难道是打算在派生类的成员函数里调用父类的方法。
[解决办法]
- C/C++ code
#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。转换为派生类指针再调用
[解决办法]
[解决办法]
Base::function() //Base指名调用的父类类别。
[解决办法]
因为你说错了,基类是父类,派生类是子类,你正好说反了
[解决办法]
19楼已经告诉你了
[解决办法]
[解决办法]
这是虚函数出现的最基本原因,在这种情况下,你必然已经知道派生类的函数的原型,而且所有派生类中该函数的原型必须都是一样的(否则你的main怎么知道怎么调用),因此把它设计成虚函数即可。
[解决办法]