c++的继承组合与初始化问题,在线等,急急急!

有类classA和classB,classB里的函数要用到A里的数据,但classA只能初始化一次,但是我要定义一个数组存放多个B的对象,好像继承与组合都行不通,该怎么办... 有类class A 和class B,class B里的函数要用到A里的数据,但class A只能初始化一次,但是我要定义一个数组存放多个B的对象,好像继承与组合都行不通,该怎么办哪?马上要交作业了,在线等,急! 展开
 我来答
yb0319
2015-05-21 · TA获得超过188个赞
知道小有建树答主
回答量:590
采纳率:0%
帮助的人:285万
展开全部

很简单呀。

定义类B派生至类A,类B就包含了类A的所有函数和方法。

定义一个类型为B指针的数值BArray,数组每一项都是一个B类型的指针。

public class A
{
    public int a;
}
class B : public A
{
}
int main()
{
    B *BArray[8];
    for(int i=0;i<8;i++)
    {
        BArray[i] = new B();
    }
    BArray[0]->a = 10;
    return 0
}
追问
但是这样的话,当我初始化数组里的每个对象时,就顺便初始化了class A呀!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
军昊韦0el95b
2015-05-21 · TA获得超过624个赞
知道小有建树答主
回答量:443
采纳率:50%
帮助的人:384万
展开全部
静态全局变量
static A a = new A();
更多追问追答
追问
谢谢!但老师不准用全局变量。
追答
不知道 你要用A里的数据 是不是会发生实时变化  如果不是 可以在初始化后  将数据用局部变量提取出来   多次使用局部变量  A也只初始化了一次

ps:派生类的创建会导致基类的创建 基本已经走不通继承这条路了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wzhengsen
2015-05-21 · TA获得超过867个赞
知道小有建树答主
回答量:768
采纳率:0%
帮助的人:728万
展开全部
class A
{
    public:
        static int data;
};
int A::data =100;
class B
{
    public:
    void Getdata()
    {
        return A::data;
    }
};
追问
哦!谢谢! 我要在class A中定义一个函数出生一个随机数,我要在class B的一个函数里要用到这个随机数,不知static行的通不?
追答
可以
class A
{
    public:
        static int data;
        void _random();
};
int A::data =100;
void A::_random()
{
    data = 随机数;
}
class B
{
    public:
    int Getdata()
    {
        return A::data;
    }
};
int main()
{
    A a;
    a._random();
    B b;
    cout<<b.Getdata();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式