gpt4 book ai didi

c++ - struct 中的 const char 指针声明

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:13 24 4
gpt4 key购买 nike

我正在尝试这样做,但我的编译器不允许我:

    struct {
const char* string = "some text";
} myAnonymousStruct;

我认为这是因为不能在结构声明中进行赋值——它们应该在函数或其他方式中进行。但我真的不允许分配 const char* 变量吗?
如果有人能告诉我我遗漏了什么,我将不胜感激。谢谢

最佳答案

您的密码是 perfectly fine在支持 C++11 或更高版本的编译器上。

在 C++11 之前,结构的成员不能被默认初始化。相反,它们必须在创建实例结构后进行初始化。

如果它符合您的需要,您可以像这样使用聚合初始化:

struct {
const char* string;
} myAnonymousStruct = { "some text" };

但是,如果您尝试默认初始化的不仅仅是结构的一个实例,那么您可能希望为结构提供构造函数并初始化其中的成员。

struct MyStruct {
const char* str;
MyStruct() : str("some text") { }
};

MyStruct foo;
MyStruct bar;

在前面的示例中,foobarMyStruct 的不同实例,它们都将 str 初始化为“一些文本”

关于c++ - struct 中的 const char 指针声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14000172/

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