gpt4 book ai didi

c++ - (C++) 无法引用命名空间内的枚举类

转载 作者:太空宇宙 更新时间:2023-11-04 13:22:05 25 4
gpt4 key购买 nike

你好,我在做项目的时候遇到了这个问题,我的情况是这样的:

类型.h

namespace Machine
{
enum class size{
TINY,
SMALL,
MEDIUM
}
//other stuff.....

在另一个文件中:

测试.h:

#include "types.h"
class sample{
public:
void some_function();
Machine::size s; //this declaration is correct
}

测试.cpp:

#include "test.h"
void some_function(){
s = Machine::size::TINY;//line aaaa; this line is error
}

在 aaaa 行我一直收到错误消息:

error: 'Machine::size' is not a class or namespace

有人知道为什么吗?还是将枚举类放在命名空间中不好?谢谢!

Edit: I fixed the machine spell problem in the first file, sorry about that

Machine::size s 只是一个保存这个属性(机器的大小)的地方,所以我真的不认为它有什么特别之处。

最佳答案

test.cpp中替换以

开头的定义
void some_function()

void sample::some_function()

否则,您将定义一个与类 sample 没有任何关系的独立函数(换句话说,您没有定义成员函数)。因此,在您的情况下,s 未被视为类 sample 的成员变量,因此出现错误。

关于c++ - (C++) 无法引用命名空间内的枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913181/

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