具有const数据成员作为类成员的对象

Objects with const data members as members of classes

本文关键字:成员 对象 const 数据成员 具有      更新时间:2023-10-16

所以我试图写一个名为本科生的类,它将Phone类的对象作为参数。但是,phone类使用一个名为msg的const数据成员。由于phone类中的const数据成员,这将无法编译。我怎么修理它?任何帮助将非常感激!

//下面是Phone类的默认构造函数,它使用const数据成员msg

Phone::Phone():msg(10){ //intialize const data member
    areacode = 999;
    exchange = 999;
    line = 9999;
}

//这是我的构造函数,它接受对象作为参数

Undergraduate::Undergraduate(Name sname, Date bday, Program sprogram, Phone sphone, char g, string s, int c, double G, int gdyr, string term){
    name = sname;
    date = bday;
    pgm = sprogram;
    phone = sphone;
    gender = g;
    status = s;
    credit = c;
    gpa = G;
    gradyear = gdyr;
    gradterm = term;
}

我认为这里的问题可能是你说的电话=电话;这需要更改const成员。你可以在本科类中使用初始化列表来初始化它。

Undergraduate::Undergraduate(Name sname, Date bday, Program sprogram, Phone sphone, char g, string s, int c, double G, int gdyr, string term)
: phone(sphone)
{
    name = sname;
    date = bday;
    pgm = sprogram;
    gender = g;
    status = s;
    credit = c;
    gpa = G;
    gradyear = gdyr;
    gradterm = term;
}