gpt4 book ai didi

c++ - 如何用代码初始化静态成员char数组

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

我想根据其他静态字符数组成员来初始化一个静态字符数组成员——但是初始化使得代码是必要的。这可能吗?

class fred {
static char *a;
static char *b;
static char c[4];
}

现在 a 和 b 将具有固定值,但我想根据它们构造 c。例如:

fred::a = "1234"
fred::b = "ab"
strcpy(c, b);
strncat(c, a, 1);

但是我无论如何都看不到要初始化 c,除了为此目的创建一个类,它只是一个 char[4],带有一个引用 fred::a 和 fred::b 的构造函数,然后替换c 在 fred 中带有该类的一个实例 - 这在引用 c 字符数组时很尴尬。

有没有更好的办法?

最佳答案

编辑: 最初,我有 wilma 作为 fred 的 friend ,还有 wilma 的静态实例做初始化。我已将示例更改为在 fred 中声明了 dino,因为 OP 表示他认为这样会更简洁。

您可以在 fred 中创建一个类的静态实例,它的工作是为您初始化 c

class fred {
static char *a;
static char *b;
static char c[4];
static struct dino { dino (); } dino_flintstone;
};

char *fred::a;
char *fred::b;
char fred::c[4];
fred::dino fred::dino_flintstone;

fred::dino::dino () {
fred::a = "1234";
fred::b = "ab";
strcpy(fred::c, fred::b);
strncat(fred::c, fred::a, 1);
}

关于c++ - 如何用代码初始化静态成员char数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11093283/

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