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

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

復制構造函數無法正確輸出

復制構造函數無法正確輸出

C++
帝國大學 2017-06-11 13:26:02
//main.c #include?<iostream> #include?"Teacher.h" #include?"stdlib.h" using?namespace?std; int?main(void) { Teacher?t1; cout<<?t1.getName()<<"?"<<t1.getAge()<<?endl; Teacher?t2("Marry",12); cout?<<?t2.getName()?<<?"?"?<<?t2.getAge()?<<?endl; Teacher?t3("King",?35,?120?); cout?<<?t3.getName()?<<?"?"?<<?t3.getAge()?<<"?"<<t3.getMax()<<?endl; Teacher?t4=t3; cout?<<?t4.getName()?<<?"?"?<<?t4.getAge()?<<?"?"?<<?t4.getMax()?<<?endl; system("pause"); return?0; } //Teacher.h #include?"string" #include?<iostream> using?namespace?std; class?Teacher { public: //Teacher(string?name?=?"Jim",?int?age?=?30); //Teacher(); Teacher(string?name="Jim",?int?age=30,?int?m=120); Teacher(const?Teacher?&); //Teacher(Teacher?&t); void?setName(string?name); string?getName(); void?setAge(int?age); int?getAge(); int?getMax(); private: string?m_strName; int?m_iAge; int?m_iMax; }; //Teacher.c #include?"Teacher.h" //using?namespace?std; //使用初始化列表 Teacher::Teacher(string?name,?int?age,?int?m)?:?m_strName(name),?m_iAge(age),?m_iMax(m) { //m_iMax?=?m; cout?<<?"Teacher(string?name,?int?age,?int?m)"<<?endl; // m_strName?=?name; // m_iAge?=?age; } //?構造函數的一般初始化 //?Teacher::Teacher(string?name,?int?age,?int?m)? //?{ //? cout?<<?"Teacher(string?name,?int?age)"?<<?endl; //? m_iMax?=?m; //? ????m_strName?=?name; //? m_iAge?=?age; //?} Teacher::Teacher(const?Teacher?&) { cout?<<"Teacher(const?Teacher?&)"?<<?endl; } int?Teacher::getMax() { return?m_iMax; } void?Teacher::setName(string?name) { m_strName?=?name; } string?Teacher::getName() { return?m_strName; } void?Teacher::setAge(int?age) { m_iAge?=?age; } int?Teacher::getAge() { return?m_iAge; }為什么對象t4的輸出與對象t3不同呢?
查看完整描述

2 回答

?
Xyino_Snake

TA貢獻31條經驗 獲得超22個贊

你的復制構造函數光輸出了,沒賦值啊。
必須在輸出的同時,把值付給它才行。為了防止錯誤,以我的習慣,輸出自己而不是輸入的源對象。
能聽懂嗎?我沒仔細看代碼,以下基本可以說明我的意思。
teacher::teacher(cst teacher & tc)
{
????? /...要先進行賦值。
????? cout...然后再輸出。這樣就對了。
}

查看完整回答
1 反對 回復 2017-06-11
?
Xyino_Snake

TA貢獻31條經驗 獲得超22個贊

補充:復制的過程必須自己給出來。不要以為系統會做這件事情。

查看完整回答
反對 回復 2017-06-11
  • 2 回答
  • 0 關注
  • 2111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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