c++的继承组合与初始化问题,在线等,急急急!
有类classA和classB,classB里的函数要用到A里的数据,但classA只能初始化一次,但是我要定义一个数组存放多个B的对象,好像继承与组合都行不通,该怎么办...
有类class A 和class B,class B里的函数要用到A里的数据,但class A只能初始化一次,但是我要定义一个数组存放多个B的对象,好像继承与组合都行不通,该怎么办哪?马上要交作业了,在线等,急!
展开
3个回答
展开全部
很简单呀。
定义类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呀!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
静态全局变量
static A a = new A();
static A a = new A();
更多追问追答
追问
谢谢!但老师不准用全局变量。
追答
不知道 你要用A里的数据 是不是会发生实时变化 如果不是 可以在初始化后 将数据用局部变量提取出来 多次使用局部变量 A也只初始化了一次
ps:派生类的创建会导致基类的创建 基本已经走不通继承这条路了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询