gpt4 book ai didi

c++ - 如何在 C++ 中为这种父子层次结构建模?

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:35 27 4
gpt4 key购买 nike

我想创建一个通用的抽象 TimePeriod 类。它的示例子类是 DayHourMinute

我还想创建一个通用的 TimeData 类,将 TimePeriod 对象与一些数据相关联,例如两个 double 用于最低以及这段时间内的最高温度。

为此创建一个抽象的 Data 类可能不是一个坏主意。所以 TimeData 会将 TimePeriodData 相关联。

这是一个层次结构看起来像 w.r.t. 的例子。时间:

hierarchy

除了“垂直”的父子关系(当我在某个时间工作时,我想知道那个时间是哪一天),我还想要“水平”的关系,让我可以轻松循环通过每日数据、每小时数据、分钟数据等。

你能告诉我如何在 C++ 中将其建模为类吗?我需要使用指针(在这种情况下我更喜欢智能指针)还是可以使用更简单的 vectorlist 等 STL 类?

最佳答案

您可以将结构更改为类。我真的不明白为什么要将 TimePeriod 定义为抽象的。我还建议制作一个 TimePeriod 类型的链接列表。列表中的每个项目将通过 next 指针指向下一个时间段项目。

struct TimeData
{
int minTemp;
int maxTemp;

public int setData(int minTemp,int maxTemp)
{
}
}

struct TimePeriod
{
Day d;//this is kinda redundant as it only contains one day
TimeData td;
TimePeriod *next;//to point to next TimePeriod object in the list
};

struct day
{
int d;
Hour h[24];
TimeData td;
int setTimeData()
{
//cycle through hour timedata and calculate avg or whatever you want
}
};
struct Hour
{
int h;
Min m[60];
TimeData td;
int setTimeData()
{
//cycle through min timedata and calculate avg or whatever you want
}

};
struct Min
{
int m;
TimeData td;
int setTimeData(int minTemp,int maxTemp)
{
//set TimeData td
}
};

关于c++ - 如何在 C++ 中为这种父子层次结构建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16301484/

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