c++对象数组问题

想做一个学生类通过构造函数导入学生的信息我用的是定义数组指针来实现Student(){}//构造函数Student*A=newStudent[n];现在的问题是初始化的时... 想做一个学生类 通过构造函数导入学生的信息 我用的是定义数组指针来实现
Student(){}//构造函数
Student *A=new Student[n];

现在的问题是 初始化的时候是不是这N个对象都同时调用那构造函数 如果构造函数有参
Student(double,double);//有参构造函数
那么该如何写这式子呢?
请回答详细点 可能的话给点例子 回答满意再加分10
展开
 我来答
悲欢归去来3425
2010-06-02 · TA获得超过364个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:344万
展开全部
定义的类要声明数组的话,必须要定义类的默认构造函数。
例如
class Student
{
protected:
int i;
public:
Student():i(0){}
/*这里就是默认构造函数。所谓默认构造函数就是没形参的构造函数*/
Student(int f):f(i){}
};
如果你的Student没默认的构造函数
Student *A=new Student[n];
这一句就会报错。
同样Student P[10]也会报错;
对于这种赋值只能一个一个的赋值。也就是动态分配的数组;
对于不是动态分配的则可以这样
Student P[10]={1,2,3,8};
对于多形参的则必须这样了
Student P[12]={Student(1,9),Student(8,7)};
老猿小郭
2010-06-02 · TA获得超过2763个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:609万
展开全部
第一个问题:在构造动态数组的时候N个对象都会调用构造函数,这点你测试一下就知道了,在构造函数里写一句输出,
Student()
{
cout<<"test"<<endl;
}
第二个问题:在C++里是不支持直接构造带参数的数组,如果一定要这样做,有个折中的办法,
Student *s[n];
for (int i =0;i<n;i++)
{
s[i] = new Student(i,i);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式