这些是头文件的类函数:
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
识别为我的类变量的一部分,但我们应该使用相同的函数名。
答案 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。