为了练习,我试图创建一个递归目录解析器.
为了简约,我想要递归地包含结果,例如:
1 class CDirectory
2 {
3 private:
4 std::string name;
5 std::vector<CDirectory> subDirectories
6 public:
7 //Various things, constructors etc. go here
8 }
Run Code Online (Sandbox Code Playgroud)
但是,我在这里看到第5行不受支持的行为 - "C++标准(2003)明确表示实例化一个不完整类型的标准容器,调用未定义的行为."
那么,我该怎么办?有没有办法让对象包含类似对象的列表?如果不出意外,我知道制作矢量矢量绝不是违法的,所以这是一个包含自身的对象.
制作一个指针向量
std::vector<CDirectory*> subDirectories;
Run Code Online (Sandbox Code Playgroud)