gpt4 book ai didi

c++ - 在类中初始化字符数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:15 30 4
gpt4 key购买 nike

当我用 g++ 4.8.2 编译下面的代码时出现错误。

#include <iostream>

using namespace std;

class test {
public:
void print() {
cout << str << endl;
}

private:
char str[] = "123456789"; // error: initializer-string for array of chars
// is too long
};

int main() {
char x[] = "987654321";
cout << x << endl;

test temp;
temp.print();
}

为什么我会得到这个错误,类 test 中的 strmain 中的 x 有什么区别> 功能?

最佳答案

在你的类中,你必须显式指定数组大小:

class test {
...
private:
// If you really want a raw C-style char array...
char str[10] = "123456789"; // 9 digits + NUL terminator
};

或者您可以简单地使用 std::string(我认为这在 C++ 代码中通常比使用原始 C 风格的字符串要好得多):

#include <string>
...

class test {
...
private:
std::string str = "123456789";
};

关于c++ - 在类中初始化字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942724/

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