class函数作为指针

时间:2017-05-04 02:08:28

标签: c++ class pointers inheritance

这些是头文件的类函数:

public:
    hunter(string aSpecies);         // create a hunter of the given species
    void recordKills(string kill);   // add a new kill to the end of the hunter's list of kills
    string *theKills();              // return a pointer to the array of all kills by this hunter
    int numberOfKills();             // how many kills have been recorded

和类变量:

private:
    string kill;
    int numberkilled;
    string kills[20];

我不确定如何处理“string * theKills()”

我试过这样做:

string hunter::*theKills(){
    pointer = kills;
    return pointer;
}

与*一样,它不会将kills识别为我的类变量的一部分,但我们应该使用相同的函数名。

1 个答案:

答案 0 :(得分:0)

语法如下:

<return type> <class name>::<function name>(<parameters>);

在你的情况下是:

  • <return type>string *
  • <class name>hunter
  • <function name>theKills
  • <parameters>:无
string * hunter::theKills() {
    return kills; // you don't need a temporary pointer variable
}

省去了使用指针的麻烦,我建议您使用std::array而不是C数组string kills[20]

std::array<std::string, 20> kills;

请记住将const限定符添加到每个不修改任何类成员的成员函数中。

我猜测使用using namespace std; bad practice