gpt4 book ai didi

c++ - 列表、命名空间中的嵌套名称说明符中的类型不完整

转载 作者:行者123 更新时间:2023-11-30 03:40:34 26 4
gpt4 key购买 nike

我有这样的 timers.h 文件:

namespace timers {
struct timer {
std::string next;
};

struct timers {
std::list<timers::timer> timers_list;

timers();
};

当我尝试编译我的程序时,它显示:

modules/timers.h:23:13: error: incomplete type 'timers::timers' used  in nested name specifier

为什么我不能在下一个结构中使用我的结构作为列表?

最佳答案

namespacestruct 同名。当您键入 timers:: 时,编译器假定这是指 struct,而不是 namespace(这是一种名称隐藏) .

因此,由于 timers 类尚未完全编写,编译器会提示类型“不完整”。

拥有相同名称的classnamespace是个坏主意,但如果您只输入以下内容,您的代码就可以编译:

std::list<timer> timers_list;

因为当你引用同一个东西时,你不需要显式命名空间。

关于c++ - 列表、命名空间中的嵌套名称说明符中的类型不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37917544/

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