gpt4 book ai didi

c++ - 访问用户定义类型数组的特定属性

转载 作者:行者123 更新时间:2023-11-30 03:15:21 25 4
gpt4 key购买 nike

我是 C++ 的初学者,我正在尝试创建一个模拟飞行管理系统的程序。我创建了一些类来简化这个过程。现在,我有一个名为“Flight”的类,它具有其他用户定义的数据类型作为其属性。例如,它包括两个“日期”对象,用于我的航类对象的到达和离开日期。我还有一组 30 个“乘客”对象,代表我航类的乘客。不过,我在更改此数组时遇到困难。我需要为我的 Flight 类编写一个成员函数,它可以在给定 ID(这是 Passenger 的一个属性)的情况下从数组中删除 Passengers。

我想尝试通过传递一个整数“removeID”来实现这个功能。然后将该值与数组中乘客的 ID 进行比较。如果匹配,条目将被“删除”,实质上释放数组中的空间。

我的类 Flight 在它自己的头文件中定义。

#include <string>
#include "Date.h"
#include "Time.h"
#include "Passenger.h"
#ifndef FLIGHT_H_
#define FLIGHT_H_

class Flight
{
public:
Flight(std::string, Date, Date, Time, Time);
float flightTime();
void addPassenger(Passenger);
void removePassenger(int);
bool listChecker(Passenger);
void flightListPrinter()const;
int seatsRemaining();

private:
std::string flightNumber;
Date arrivalDate;
Date departureDate;
Time arrivalTime;
Time departureTime;
std::string destination;
Passenger* passengerList[30];
int numPassengers;
};
#endif

这是我的类(class) Passenger 的布局:

#include <string>
#include "Date.h"

class Passenger
{
public:
//Part a)
// Constructor
Passenger(int = 1337, std::string = "Name", std::string = "Banana Island", std::string = "(514)514-5145", Date birth=(1,1,1999));
// Part b)
int getID();
std::string getName();
std::string getAddress();
std::string getTel();
Date getBday();
// Part c)
void setAddress(std::string);
void setTel(std::string);
void setBirthD(Date);
// Part d)
void printInfo()const;

private:
int ID;
std::string name;
std::string address;
std::string Tel;
Date birthD;
};

我正在尝试访问 ID,Passenger 对象的一个​​属性,它本身是 Flight 对象的属性。乘客都存储在一个名为 passengerList 的数组中,它有 30 个乘客长。在我的 main.cpp 文件中,我定义了移除乘客函数,如下所示:

void Flight::removePassenger(int removeThisID) // Passing the ID to remove 
{
for (int i = 0; i < 30; i++) // Check all the passengers in the array
{
// Unsure about the way to access the ID. PassengerList[i].ID == removeThisID ?
}
}

最佳答案

不幸的是,你不能从数组中删除,根据我对你项目的了解,我可以建议你做两件事来解决这个问题1 - 您可以在每次删除时将数组存储在其他数据结构中,并在没有目标的情况下重新初始化它,这需要大量工作,或者,2 - 您可以使用来自 cpp 的标准库 (std) 的 vector ,它将自动为您完成第一部分。您可以检查来自 http://www.cplusplus.com/reference/vector/vector/vector/ 的 vector

关于c++ - 访问用户定义类型数组的特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57103873/

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