第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于C++這個繼承構造函數怎么寫

關于C++這個繼承構造函數怎么寫

C++
慕仙森 2018-11-08 12:14:12
Employee(const long n,const char N){number=n,*name=*N;};virtual~Employee(){};const char getName(long n) const{};const long getNumber() const{};virtual double eamings() const=0;virtual void print() const{cout<<"編號:"<<number<<"姓名"<<*name<<endl;};protected:long number;char *name;};class Manager: public Employee{ public:Manager(const long n,const char *N,double u=0.0):Employee(n,*N){}錯誤的這里說沒有匹配構造函數實例子~Manager(){};void setMonthlySalary(double n){number=n;};virtual double eamings() const{return 0;}; virtual void print() const{cout<<"編號:"<<number<<"姓名"<<*name<<"月薪"<<monthlySalary<<endl;};private:double monthlySalary;};int main(){ cout<<setiosflags(ios::fixed|ios::showpoint)<<setprecision(2) ;Manager m1(10135,"Cheng ShaoHua", 1200.0) ;Manager m2(10201,"Yan HaiFeng");m2.setMonthlySalary ( 5300.0) ;
查看完整描述

3 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

Manager(const long n,const char *N,double u=0.0):Employee(n,*N){}

錯誤的這里說沒有匹配構造函數實例子

基類是const cahr N 你寫的是const char * 當然不match。

Employee(const long n,const char N){number=n,*name=*N;};

基類這里也寫錯了


查看完整回答
反對 回復 2018-11-14
?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

Employee的構造函數參數long和char

但是manager的前兩個參數確實long和char*類型,然后你可能認為在第二個參數加個*N就等于char了,其實這是不正確的,你可以N[0]或者坐下合理的轉換將char*轉換為父類能接受的char類型。

 

ps:這種設計和寫法見的相對比較少,一般來說最好保持父類和子類的參數一致性,不一致情況最好做好轉換工作


查看完整回答
反對 回復 2018-11-14
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

你用的啥編譯器? C++ 11 才有構造函數繼承。

我假設你用的是 C++ 11,我還得假設你的 Employee::name 在賦值前已經分配了內存(雖然與語法錯誤無關),在這兩個假設前提下,你的 Employee::Employee 有語法錯誤,錯誤的語句是:*name=*N,應該為 *name = N。


查看完整回答
反對 回復 2018-11-14
  • 3 回答
  • 0 關注
  • 815 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號