我有一個應該保存其他對象的內存位置的指針數組。將數組添加到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的指針數組。飛行不是指針。 –