【发布时间】:2019-12-01 11:16:52
【问题描述】:
我正在尝试在 Construct 类中初始化 nums 二维数组。我正在使用默认构造函数来初始化它,但由于它已经创建,我无法这样做。我也不能在课堂上初始化它。我已经尝试手动初始化每个元素并且它可以工作,但我只想在一行中初始化nums。
#include <iostream>
using namespace std;
class Construct {
public:
int nums[3][3];
// Default Constructor
construct()
{
int nums[3][3] = {{4,5,42,34,5,23,3,5,2}}
}
};
int main()
{
Construct c;
cout << "a: " << c.nums[1][0] << endl
<< "b: " << c.nums[0][1];
return 1;
}
我试过了
nums[1][0] = 5 ...但这不是很有效。任何反馈都会很棒。
【问题讨论】:
-
你只是声明了一个与成员变量同名的局部变量,一旦你退出函数,它就会消失。顺便说一句,您需要使用确切的类名才能使此函数用作构造函数。 BTW 2,
{{4,5,42,34,5,23,3,5,2}}的尺寸不是 3 x 3。 -
为构造函数使用成员初始化列表。 en.cppreference.com/w/cpp/language/initializer_list
标签: c++ arrays initialization