
c++对象数组问题
想做一个学生类通过构造函数导入学生的信息我用的是定义数组指针来实现Student(){}//构造函数Student*A=newStudent[n];现在的问题是初始化的时...
想做一个学生类 通过构造函数导入学生的信息 我用的是定义数组指针来实现
Student(){}//构造函数
Student *A=new Student[n];
现在的问题是 初始化的时候是不是这N个对象都同时调用那构造函数 如果构造函数有参
Student(double,double);//有参构造函数
那么该如何写这式子呢?
请回答详细点 可能的话给点例子 回答满意再加分10 展开
Student(){}//构造函数
Student *A=new Student[n];
现在的问题是 初始化的时候是不是这N个对象都同时调用那构造函数 如果构造函数有参
Student(double,double);//有参构造函数
那么该如何写这式子呢?
请回答详细点 可能的话给点例子 回答满意再加分10 展开
2个回答
展开全部
定义的类要声明数组的话,必须要定义类的默认构造函数。
例如
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)};
例如
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)};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询