Хорошо, поэтому я пишу простой интерпретатор схем (ala Bootstrap Scheme ), но в C ++ 11 (однако этот вопрос не является специфичным для C ++ 11). Я пытаюсь придумать разумную форму для моего класса «Объект». В настоящее время мой макет выглядит примерно так:
typedef union {
int i;
double d;
char c;
} value;
class Object {
public:
//Constructors and stuffs...
private:
obj_type type;
value val;
list<Object> l;
};
Я попытался поместить список в объединение (которое было в классе), но компилятор пожаловался. Мой вопрос таков: возможно ли поместить список класса в сам класс? Я думаю, что я должен быть в состоянии, так как по умолчанию в списке не будет объектов (так что нет бесконечного роста).
Во-вторых, если это невозможно, есть ли другие предложения о том, как это реализовать? Я знаю, что могу реализовать список в стиле 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
.