永发信息网

C++在另一个类中定义某一个类个对象数组

答案:1  悬赏:30  手机版
解决时间 2021-03-14 17:35
class Lesson
{
public:

string subject,ID;
int credit;
char grade;
Lesson(string sub,string id,int cre,char gra):subject(sub),ID(id),credit(cre),grade(gra){}
void display2()
{
cout<<ID<<" "<<subject<<" "<<credit<<" "<<grade<<" "<<endl;
}

};

class Student
{
public:
Lesson le[6] //在这里定义的对象数组
string name;
int ID,number;
char yn;

Student(string nam,int id,int num,char YN):name(nam),ID(id),number(num),yn(YN){} //**
...................
(这个类后面还有函数什么的)

然后我在main函数中先将Student的构造函数初始化,再将数组初始化,如下

Student stud1("Lisa Miller",890238,4,'Y'),stud2("Bill Wilton",798324,5,'N'),stud3("Dandy Goat",746333,6,'Y');
stud1.le[4]={
Lesson("ComputerSci","CSC478",3,'B'),
Lesson("History","HIS356",3,'A'),
Lesson("Mathematics","MTH345",4,'A'),
Lesson("Physics","PHY357",3,'B')
};

但是编译器说是//**这一条语句出错 原因是没有默认构造函数
还有对数组初始化的{}括号也说是错误
求解
最佳答案
int a[3] = {1, 2, 3}; // ok

int b[3];
b[3] = {1, 2, 3};  // error of course

C++ 中, 不能用第二种方式 对数组 初始化, 除非 像a一样, 在定义的时候 可以. 


=====
多说一些:
如果 Lesson 没有默认的构造函数, 那么在Stu 类中 又没有显式的调用 Lesson 的 非默认构造函数的话, 会编译错误. 
这点在 <Effictive C++> 上讲了. 因为, Lesson数组定义的时候, 是要为它的每一个元素 调用构造函数的. 而同时, <C++ Primer> 也讲了, 对于类中的成员, 如果不显式的对其初始化, 那它便会调用该成员的默认构造函数初始化.


所以对于 你的问题, 
1. 对 Lesson 添加 默认构造函数.
2. 像这样 :
3.  Student(string nam,int id,int num,char YN)
        :name(nam),ID(id),number(num),yn(YN),
        le{{"ss", "22", 3, 'c'}, {"hh", "11", 4, 'l'}, .....}               // 对类中成员 为 数组的 初始化, 必须 在这里(构造函数的初始化列表中, 而不能在它的函数体中)
   {  // 不能在这.4.    }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我朋友有被害妄想症,我该怎么帮她?
东营市牙病防治所地址有知道的么?有点事想过
惠普笔记本什么系列的适合办公
意绿王洗衣会所地址在哪,我要去那里办事
如果我失忆,会有多少人借机把我抛弃
魅族手机白天拍照长曝光下一片空白怎么搞?
剪卡器一般在哪里有卖
9.75减去多少等于最
上东一号三期二手房房价是多少
高宝隆陶瓷在哪里啊,我有事要去这个地方
春红快餐店我想知道这个在什么地方
黄家驹和郑伊健两个人留长发,哪个更加像蛊惑
济宁富力万达嘉华酒店在什么地方啊,我要过去
微信上女孩用奥地里安道尔泽多岛都是啥意思
三篇文章赏析!悬赏很高的!在线等!快点!
推荐资讯
和风餐厅有没有配套圆形饭桌的?
部落冲突你们能玩吗?我登游戏提示说以停止运
赛巴斯的真正身份是
手机存储的照片怎么用数据线传到电脑上
win7 ug6.0安装好后怎样设置语言
(1),50%+2x=3分之2 (2),25%x-5分之3=5分之2
华科的机械好,还是电气好
裕澄旅社我想知道这个在什么地方
金帅XPB70一299s型洗衣机脱水电机
沈阳中钞信达金融设备有限公司地址在哪,我要
全职妈妈在家做点什么兼职靠谱
三园演义的好词、好句、好段
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?