2019.1.11 c++學習錯誤總結
阿新 • • 發佈:2019-01-13
- 定義類的的方法時,函式名不能跟內容重合。
- 在使用函式預設引數時,定義某個預設引數時,之後所有的引數必須都指定預設引數。
- 寫公有繼承的繼承類建構函式時,出現錯誤: undefined reference to `TableTennisPlayer::TableTennisPlayer(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool)’|
是因為基類的建構函式忘了寫,導致無法呼叫基類建構函式
#include "tabtenn1.h" #include <iostream> TableTennisPlayer::TableTennisPlayer(const string & fn, const string & ln , bool ht)//基類建構函式 { firstname = fn; lastname = ln; hasTable = ht; } void TableTennisPlayer::Name()const { std::cout << lastname << ", " << firstname; } //RatedPlayer methods RatedPlayer::RatedPlayer(unsigned int r, const string & fn, const string & ln, bool ht ) : TableTennisPlayer(fn, ln, ht)//出現問題行 { rating = r; } RatedPlayer::RatedPlayer(unsigned int r, const TableTennisPlayer & tp) : TableTennisPlayer(tp),rating(r) { }
問題來自C++primer plus 程式清單13.5