1

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

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

Data为此目的创建一个抽象类可能不是一个坏主意。所以 aTimeData会将 aTimePeriod与 a相关联Data

这是一个示例,层次结构如何看起来像 wrt time:

等级制度

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

你能给我一些关于如何在 C++ 中将其建模为类的想法吗?我需要使用指针(在这种情况下我更喜欢智能指针)还是可以使用更简单的vectorSTLlist类?

4

1 回答 1

1

您可以将结构更改为类。我真的不明白为什么要将 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
    }
};
于 2013-04-30T14:14:50.160 回答