gpt4 book ai didi

c++ - 使用 vector 资源句柄的递归成员初始化

转载 作者:行者123 更新时间:2023-11-28 06:18:28 24 4
gpt4 key购买 nike

下面的代码显然不能编译(相当于定义一个类为C { C myC } ,这将占用无限内存)。问题是 C++ 实际上是如何进行检查的?

class Node {
vector<Node> mChildren{ Node }
}

当我尝试编译时,出现以下错误。

trie.cpp:6:35: error: expected primary-expression before ‘}’ token
vector<Node> mChildren { Node };
^
trie.cpp:6:35: error: could not convert ‘{<expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<Node>’

是不是因为类Node还没有完全声明?为什么我可以将它用作 vector 的模板参数。类似的问题出现在

class C {
C myC;
};

最佳答案

Node 类中有两个问题。您在末尾缺少一个分号,并且在该行的末尾有一个奇怪的 {Node} 。修复它,它将编译。

class Node {
Node() {}
vector<Node> mChildren= { Node() };
};

这编译得很好。

关于c++ - 使用 vector 资源句柄的递归成员初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780300/

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