形參賦初始值的問題
class?Student { string?m_strName; public: Student(); Student(string?_name);??????????????????//Student(string?_name='Leo')為什么編譯不通過呢? Student(const?Student?&?stu); ~Student(); void?SetName(string?_name);????????????//void?SetName(string?_name='Leo')同上 string?GetName(); }; Student::Student() { ????m_strName=""; ????cout<<"Student()"<<endl; } Student::Student(string?_name) { ????m_strName=_name; ????cout<<"Student(string?_name)"<<endl; } Student::Student(const?Student&?stu) { ????cout<<"Student(const?Student?&?stu)"<<endl; } Student::~Student() { ????cout<<"~Student"<<endl; } void?Student::SetName(string?_name) { ????m_strName=_name; ????cout<<"SetName(_name)"<<endl; } string?Student::GetName() { ????return?m_strName; ????cout<<"GetName()"<<endl; } int?main(void) { ????//?通過new方式實例化對象*stu ????Student?*stu?=?new?Student(); ????//?更改對象的數據成員為“慕課網” stu->SetName("慕課網"); ????//?打印對象的數據成員 cout<<stu->GetName()<<endl; return?0; }
如上注釋所示,為什么在申明函數的時候給形參賦值通不過呢?我記得前面的課程里好像有在聲明函數的時候賦值的
希望前輩指點,謝謝
2015-06-25
Student(string?_name='Leo')這樣就2個默認構造函數了~要產生二義性的
2015-05-26
字符串是雙引號不是單引號