亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

求助關于構造函數的默認參數問題,麻煩幫忙看一下~

求助關于構造函數的默認參數問題,麻煩幫忙看一下~

動漫人物 2021-11-24 22:15:43
在name.h中定義類class,他有三個構造函數Name();Name(char *first);Name(char *first, char *last);這三個構造函數的實現在name.cpp中。(這時程序沒有問題)如果利用默認參數,構造函數為Name(char *first="default",char *last="default"); (在name.h中)Name::Name(char *first="default",char *last="default") (name.cpp中為){strcpy(firstname,first);strcpy(lastname,last);}程序中出現兩個問題error C2572: 'Name::Name' : redefinition of default parameter : parameter 2c:\documents and settings\administrator\桌面\name.h(11) : see declaration of 'Name::Name'error C2572: 'Name::Name' : redefinition of default parameter : parameter 1c:\documents and settings\administrator\桌面\name.h(11) : see declaration of 'Name::Name'怎么改正在這種情況下才能正常運行如果程序為Name(char *first="default",char *last="default") (name.h中){strcpy(firstname,first);strcpy(lastname,last);}則程序沒沒問題
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

構造函數定義改為

Name::Name(char *first,char *last) (name.cpp中為)
{
strcpy(firstname,first);
strcpy(lastname,last);
}

查看完整回答
反對 回復 2021-11-28
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

我覺得不必使用默認值,你可以在構造函數Name()中實現

Name::Name()
{
strcpy(firstname,"default");
strcpy(lastname,"default");
}

查看完整回答
反對 回復 2021-11-28
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

解決辦法:
Name(char *first="default",char *last="default");(name.h中)

Name::Name("default", "default") (name.cpp中為)
{
strcpy(firstname,first);
strcpy(lastname,last);
}

應該就OK了



查看完整回答
反對 回復 2021-11-28
  • 3 回答
  • 0 關注
  • 537 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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