如何在嵌套结构体外声明被嵌套的结构体变量
struct Object{enum class Type : uint8_t {
Unknown = 0,
apple = 1,
banana = 2,
orange = 3,
};
Type type;
};
using ObjectPtr1 = shared_ptr<Object>;
int main()
{
ObjectPtr1 object_ptr1;
return 0;
}
如上,我想在类外声明一个Type类型的变量,应该如何声明呢?
求助各位大神
ObjectPtr1->Typetype1这样是不行的,我也不是很确定为什么不行。 用 ::
Object::Typetype1; #include <cstdint>
struct Object{
enum class Type : uint8_t {
Unknown = 0,
apple = 1,
banana = 2,
orange = 3,
};
Type type;
};
int main()
{
Object::Type t = Object::Type::Unknown;
t = Object::Type::apple;
return 0;
}
dolly_yos2 发表于 2022-8-11 19:25
用 ::
是的,这样可以,为啥指针的方式不行额? 清启牧 发表于 2022-8-11 19:26
是的,这样可以,为啥指针的方式不行额?
因为 Type 是一个类型,按照名称解析就是要使用 :: 来指定(其实就是一个规定)
页:
[1]