Cod*_*ith 2 c++ struct const-char
我正在尝试这样做,但我的编译器不会让我:
struct {
const char* string = "some text";
} myAnonymousStruct;
Run Code Online (Sandbox Code Playgroud)
我相信这是因为在结构声明中不能进行任何分配 - 它们应该是在函数或其他方面进行的.但我真的甚至不允许分配const char*变量吗?
如果有人能让我知道我错过了什么,我真的很感激.谢谢
结构的成员不能默认初始化,必须在创建实例结构后初始化它们.因为在您的示例中,foo是一个未命名结构的实例,所以执行以下操作是有意义的:
struct {
const char* string;
} myAnonymousStruct = { "some text" };
Run Code Online (Sandbox Code Playgroud)
大多数寻找此行为的人都试图默认初始化结构的许多实例的值.如果这最终是您期望的用法,您可能需要考虑为您的struct提供构造函数并在其中初始化成员.
在以下示例中,bar并且MyStruct是不同的结构,两者都具有初始化为的成员str.
struct MyStruct {
const char* str;
MyStruct() : str("some text") { }
};
MyStruct foo;
MyStruct bar;
Run Code Online (Sandbox Code Playgroud)
虽然,在这种情况下,我通常最终会使用一个类.