gpt4 book ai didi

c++ - 双星号语法 & 帮助调用成员函数

转载 作者:行者123 更新时间:2023-11-30 02:07:25 24 4
gpt4 key购买 nike

我正在开发一个包含航空公司类(class)的程序。 Airline 类包含一个可变的动态 Flight 对象数组。

在我的 Airlines 类中(无法编辑或更改,这是给我的作业头文件):

//Airline.h    
class Airline {
public:
Airline(); // default constructor
Airline(int capacity); // construct with capacity n
void cancel(int flightNum);
void add(Flight* flight);
Flight* find(int flightNum);
Flight* find(string dest);

int getSize();


private:
Flight **array; // dynamic array of pointers to flights
int capacity; // maximum number of flights
int size; // actual number of flights

void resize();
};

//Flight.h
class Flight {
public:
Flight();
// Default constructor

Flight(int fnum, string destination);
void reserveWindow();
void reserveAisle();
void reserveSeat(int row, char seat);

void setFlightNum(int fnum);

void setDestination(string dest);

int getFlightNum();

string getDest();

protected:
int flightNumber;
bool available[20][4]; //only four seat types per row; only 20 rows
string destination;
};

我正在尝试实现类中的一种查找方法。

为此,我有:

    Flight* Airline::find(int flightNum){
bool found = false;
for(int i = 0; i < size; i++){
if(array[i].getflightNum() == flightNum){
found = true;
return array[i];
}
}

if(!found)
return 0;
}

// Return pointer to flight with given number if present, otherwise
// return 0.

但它说我在尝试调用 getFlightNum() 方法时需要一个类类型。我真的不明白这个错误。我没有正确调用该方法吗?正确的语法是什么?

最佳答案

因为你处理的是指针而不是实际对象,试试这个:

if(array[i]->getflightNum() == flightNum){     // Notice I am using -> instead of .
found = true;
return array[i];
}

关于c++ - 双星号语法 & 帮助调用成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com