1. 程式人生 > >2019.1.11 c++學習錯誤總結

2019.1.11 c++學習錯誤總結

  1. 定義類的的方法時,函式名不能跟內容重合。
  2. 在使用函式預設引數時,定義某個預設引數時,之後所有的引數必須都指定預設引數。
  3. 寫公有繼承的繼承類建構函式時,出現錯誤: 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