注册 登录
编程论坛 C++教室

关于派生

ronaldowsy 发布于 2008-11-16 23:47, 786 次点击
我想请问一下高手门
如果我自定义了一个函数,可不可以象构造函数那样在派生类中把我自定义的函数从基类派生过来,谢谢大家了!
如果我叙述的不明白,大家看下面的这个代码(这就是那个问题代码)
#include <iostream>
using namespace std;
class aaa
{
public:
    aaa()
    {
        x=y=0;
    }
    ~aaa()
    {
        cout<<"调用AAA析构涵数."<<endl;
    }
    void get(int xx,int yy)                      ////////////这是基类的自定义函数
    {
        x=xx;
        y=yy;
    }
    void set()
    {
        cout<<"x="<<x<<" "<<"y="<<y<<endl;
    }
private:
    int x,y;
};

class bbb:public aaa
{
public:
    bbb()
    {
        a=b=0;
    }
    ~bbb()
    {
        cout<<"调用BBB析构涵数."<<endl;
    }
    void gets(int xx,int yy,int aa,int bb): get(xx,yy) ////////////我想把它这么派生过来,请问用什么办法?
    {
        a=aa;
        b=bb;
    }
    void sets()
    {
        cout<<"a="<<a<<" "<<"b="<<b<<endl;
        set();
    }
private:
    int a,b;
};

int main()
{
    bbb a;
    a.gets(1,2,3,4);
    a.sets();
    return 0;
}
5 回复
#2
mayuebo2008-11-17 10:35
把get定义为public 或者 friend都可以的。
#3
newyj2008-11-17 16:45
可以把  get(xx,yy) 放到 gets  函数里
程序代码:

void gets(int xx,int yy,int aa,int bb)
    {
        get(xx,yy);
        a=aa;
        b=bb;
    }
#4
asd67918682008-11-17 19:07
private:
    aaa mmm;
    int a,b;
};

void gets(int xx,int yy,int aa,int bb): mmm(xx,yy)  {
        a=aa;
        b=bb;
    }

不知道是不是这个意思???
#5
aipb20072008-11-18 02:10
你的派生类中有了基类的函数,你直接调用不就行了?

你说的是派生类重写基类函数吧,那要用虚函数,加个virtual关键字在基类函数里。
#6
sunkaidong2008-11-18 09:49
楼上好久不见了...呵呵
1