cout << "请输入学生个数:";
cin >> n;
Student *student;//Student是一个类。。
student = new Student[n];
问题来嘞。。我的student数组的数据是要手动输入的。。类里面有name,number等成员。。现在该如何初始化?。。
(该类里面除了构造函数,以及构造函数的重载,没其他成员函数了。。怎么办啊)
c++里面使用动态分配内存,创建某个类的对象数组。。如何调用带参数的构造函数?。。
答案:6 悬赏:60 手机版
解决时间 2021-05-20 08:40
- 提问者网友:美人性情
- 2021-05-19 19:54
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-05-19 20:18
你可以输入以后再拷贝到数组里去(operator=),因为定义对象数组时就必须初始化每个对象,所以
student = new Student[n];
这一句实际上已经调用了每个对象的无参数构造函数,如果你没有提供一个无参数的构造函数那么这个句子会报错
另一种方法是
Student** student;
student = new Student*[n];
// 输入第i学生的信息
// student[i] = new Student(构造参数);
这样就可以实现你说的输入以后再根据输入信息构造了
student = new Student[n];
这一句实际上已经调用了每个对象的无参数构造函数,如果你没有提供一个无参数的构造函数那么这个句子会报错
另一种方法是
Student** student;
student = new Student*[n];
// 输入第i学生的信息
// student[i] = new Student(构造参数);
这样就可以实现你说的输入以后再根据输入信息构造了
全部回答
- 1楼网友:风格不统一
- 2021-05-20 02:18
可增加成员函数。SETSTUDENT,GETSTUDENT;
- 2楼网友:天凉才是好个秋
- 2021-05-20 01:18
如果你的成员都是public的
那么可以用student[i].name来赋值
如果是private 那么得就得在类中定义接口函数来进行赋值
- 3楼网友:荒野風
- 2021-05-19 23:48
既然类里没有其它函数的话,你可以把那些要输入的成员定位protected类或public类,在类外调用输入就OK了。
- 4楼网友:洎扰庸人
- 2021-05-19 22:31
构造函数有个初始化列表 你可以在分配的时候把数据传输给成员函数
- 5楼网友:神也偏爱
- 2021-05-19 21:05
你可以写一个添加的函数在类里,然后循环输入
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯