对于C++中的给定类,是否可以将同一类对象的向量作为私有变量?

use*_*488 2 c++ vector

自从我做任何C++编程以来已经有很长一段时间了,如果有人能指导我创建一个Node类,其中一个私有变量是Node类对象的列表(或向量),我将非常感激.

我希望创建一个类结构:

class Node {
private:
  string ID;
  vector < Node > list;
public:
  Node();
  void some_Function();
};
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?一个类是否可以将其私有成员之一作为相同类类型的对象列表?

Jer*_*fin 8

你不能.

定义类型的对象时vector<T>,T必须是完整的类型,直到类定义结束时才会这样.

有些编译器无论如何都会接受代码(他们会接受一些不完整类型的向量),但是C++标准不允许这样做.

  • @Saksham:是的 - "Node*"是一个完整的类型,即使`Node`不是. (2认同)