2015-10-11 84 views
0

所以我想写一个名为undergraduate的类,它将Phone类的对象作为参数。但是,电话类使用一个名为msg的常量数据成员。由于电话类中的const数据成员,这将不会编译。我如何解决它?任何帮助将不胜感激!常量数据成员作为类成员的对象

//下面是电话类的我的默认构造函数,它使用const的数据成员味精

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; 
} 
+0

这里很新,很抱歉!语言是C++ –

回答

0

我觉得这里的问题可能是你说的电话= sphone;这将需要改变const成员。您可以使用Undergraduate课程中的初始化程序列表来初始化它。

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; 
} 
+0

不幸的是,当我编译这个时,我的程序说我有多个未定义的对所有对象的引用,还有什么我该做的? –