class M{
string s[5];
M(){
s = ["abc","abc","abc","abc","abc"]; // error, how i solve it?
}
};
我想将数组声明为私有变量,然后为其赋值。
答案 0 :(得分:4)
您可以使用mem-initializer列表。例如
class M
{
string s[5];
pyblic:
M() : s{ "abc", "abc", "abc", "abc", "abc" }
{
}
};
或者您可以使用标准类std::array
代替数组。例如
#include <array>
class M
{
std::<string, 5> s;
pyblic:
M()
{
s = { "abc", "abc", "abc", "abc", "abc" };
}
};
答案 1 :(得分:1)
数组不可分配。但是您可以使用构造函数初始化列表:
M() : s{"abc","abc","abc","abc","abc"}
{
}
您还可以在声明点初始化成员:
class M{
string s[5]= {"abc","abc","abc","abc","abc"};
M(){}
};
这两个都需要C ++ 11编译器。
或者,您可以修改数组以包含所需的值。例如,
#include <algorithm> // for std::fill
M()
{
std::fill(s, s+5, "abc");
}
答案 2 :(得分:0)
改为使用vector
:
std::vector<string> s;
s = {"abc","abc","abc","abc","abc"};