我有一个应该保存其他对象的内存位置的指针数组。将数组添加到list2并从该Object中打印出一个值可以为我提供正确的值。但试图从另一个函数打印它给我的是随机值。C++取消引用通过引用分配给予随机值的指针
类:
class Airline() {
Airline();
Flight *list2[20]; //array of pointers to Flight
};
class Flight() {
int flightNo;
int MaxPeople;
};
添加飞行功能:
currentPos1 =-1 //Global Variable
void Airline::addFlight(Flight flight) {
currentPos1++;
list2[currentPos1] = &flight;
cout <<(*list2[currentPos1]).flightNo <<"\n"; //Gives proper Value
}
ShowAllFlights功能:
void AirDB::showAllFlights() {
for (int i = 0; i <= currentPos1; i++)
{
//Both cout's provide random values;
cout <<"\nFlight Number: " <<list2[i]->flightNo;
cout <<"\nMaxPeople: " << list2[i]->maxPeople;
}
}
是我引用和间接引用错在这里? 任何帮助将非常赞赏。
注释//指向指针的指针数组应该读取指向Flight的指针数组。飞行不是指针。 –