gpt4 book ai didi

c++ - 为什么这里不能访问enum?

转载 作者:行者123 更新时间:2023-12-02 15:45:27 25 4
gpt4 key购买 nike

这是我的 code/namespace :

namespace myNamespace { 

enum MyType {
ASD1,
ASD2,
ASD3
};

struct MyClass {
MyType mMyType;

MyClass(MyType myType = MyType::ASD1) : mMyType(myType) {

}
};

}

现在,如果我在另一个结构中尝试使用以下代码:

struct X
{
myNamespace::MyClass *pMyClass1 = new myNamespace::MyClass(myNamespace::MyType::ASD2);
};

它工作得很好,但如果我尝试这个:

struct X
{
myNamespace::MyClass mMyClass1(myNamespace::MyType::ASD2);
};

它说'myNamespace::MyType::ASD2'不是类型

既然都已经声明了,为什么要这样呢?

最佳答案

在类内部,您可以使用 {..}= .. 语法,而不是 (..):

struct Test {
myNamespace::MyClass mMyClass1{myNamespace::MyType::ASD2};
// myNamespace::MyClass mMyClass1 = myNamespace::MyClass{myNamespace::MyType::ASD2};

};

关于c++ - 为什么这里不能访问enum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58971019/

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