gpt4 book ai didi

c++ - 一个类可以包含自己的列表吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:41 30 4
gpt4 key购买 nike

好的,所以我正在编写一个简单的方案解释器(ala Bootstrap Scheme),但是在 C++11 中(但是这个问题并不特定于 C++11)。我正在尝试为我的类(class)“对象”提出一个合理的形式。目前,我的布局是这样的:

typedef union {
int i;
double d;
char c;
} value;

class Object {
public:
//Constructors and stuffs...

private:
obj_type type;
value val;
list<Object> l;
};

我尝试将列表放入 union (在类中),但编译器提示。我的问题是:是否可以在类本身中放置一个类的列表?我认为我应该能够,因为默认情况下列表中没有对象(因此没有无限增长)。

其次,如果这不可能,是否还有其他关于如何实现的建议?我知道我可以实现列表 C 风格(使用指针),但 STL 列表使事情变得简单得多。

更新:好的,所以指针似乎是一个不错的解决方案。我不想使用 Boost,因为这是一个我还没有广泛使用的库,我这样做的部分原因是为了更好地掌握 STL。

更新 2:新代码如下所示:

class Object {
//...
private:
obj_type type;
int i;
double d;
char c;
deque<Object*> l;
};

但我仍然收到编译器错误:‘deque’ does not name a type

最佳答案

通过以下方式摆脱“‘deque’ does not name a type”错误:

包含标题

#include <deque>

使用标准命名空间

using namespace std;

或者只是这样做(而不是使用命名空间)

std::deque<Object*> l;

关于c++ - 一个类可以包含自己的列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222708/

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