2 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
問題分析:
因?yàn)榕缮愒谡{(diào)用自己的構(gòu)造函數(shù)之前需要先調(diào)用父類的構(gòu)造函數(shù),如果你的派生類構(gòu)造函數(shù)初始化列表中沒有顯式的調(diào)用父類的構(gòu)造函數(shù),他就會(huì)自動(dòng)的調(diào)用父類的默認(rèn)構(gòu)造函數(shù)(也就是不帶參數(shù)的構(gòu)造函數(shù)),例如類Student在調(diào)用自己的構(gòu)造函數(shù)“Student(char*na,char sx,int ag,int num,char*dep)”時(shí)需要調(diào)用父類的默認(rèn)構(gòu)造函數(shù),而其父類Person的默認(rèn)構(gòu)造函數(shù)你沒有定義,所以會(huì)出現(xiàn)上述錯(cuò)誤。
解決方法:
給Person類定義默認(rèn)構(gòu)造函數(shù),即使什么也不做也要定義一個(gè)空函數(shù)

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
錯(cuò)誤主要是因?yàn)槟愕睦^承類Student中沒有為父類定義構(gòu)造函數(shù),你應(yīng)該會(huì)的,就象Graduatestudent繼承類的構(gòu)造函數(shù)一樣就行了
還有就是大小寫問題了你的兩次繼承類中定義的構(gòu)造函數(shù)都出現(xiàn)了這個(gè)問題,要知道大小寫可是不同滴呀.
1.
Teacher(char*na,char sx,int ag,char*po,char*co):Person(na,sx,ag) //Person要大寫才是你定義的類嘛
{
strcpy(post,po);
strcpy(course,co);
}
2.
Graduatestudent(char*na,char sx,int ag,int num,char*dep,char*ad):student(na,sx,ag,num,dep)//Studnet要大寫嘛
{
strcpy(advisor,ad);
}
- 2 回答
- 0 關(guān)注
- 182 瀏覽
添加回答
舉報(bào)