首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

子类如何调用到父类的方法

2012-05-20 
子类怎么调用到父类的方法子类怎么调用到父类的方法?如:CBase *Anew CACA是派生类。然后CBase类中的成员

子类怎么调用到父类的方法
子类怎么调用到父类的方法?如:
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怎么知道怎么调用),因此把它设计成虚函数即可。

探讨
我是要在基类中调用派生类的方法,这样我主main函数中每次传一个指针给基类,然后由基类的方法来调用派生类。以后拓展就不用修改基类了

[解决办法]
探讨
我是要在基类中调用派生类的方法,这样我主main函数中每次传一个指针给基类,然后由基类的方法来调用派生类。以后拓展就不用修改基类了

热点排行