3 回答

TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊
Manager(const long n,const char *N,double u=0.0):Employee(n,*N){}
錯誤的這里說沒有匹配構(gòu)造函數(shù)實例子
基類是const cahr N 你寫的是const char * 當(dāng)然不match。
Employee(const long n,const char N){number=n,*name=*N;};
基類這里也寫錯了

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊
Employee的構(gòu)造函數(shù)參數(shù)long和char
但是manager的前兩個參數(shù)確實long和char*類型,然后你可能認(rèn)為在第二個參數(shù)加個*N就等于char了,其實這是不正確的,你可以N[0]或者坐下合理的轉(zhuǎn)換將char*轉(zhuǎn)換為父類能接受的char類型。
ps:這種設(shè)計和寫法見的相對比較少,一般來說最好保持父類和子類的參數(shù)一致性,不一致情況最好做好轉(zhuǎn)換工作

TA貢獻(xiàn)1757條經(jīng)驗 獲得超7個贊
你用的啥編譯器? C++ 11 才有構(gòu)造函數(shù)繼承。
我假設(shè)你用的是 C++ 11,我還得假設(shè)你的 Employee::name 在賦值前已經(jīng)分配了內(nèi)存(雖然與語法錯誤無關(guān)),在這兩個假設(shè)前提下,你的 Employee::Employee 有語法錯誤,錯誤的語句是:*name=*N,應(yīng)該為 *name = N。
- 3 回答
- 0 關(guān)注
- 807 瀏覽
添加回答
舉報