class M{
string s[5];
M(){
s = ["abc","abc","abc","abc","abc"]; // error, how i solve it?
}
};
我想将数组声明为私有变量,然后为其赋值。
发布于 2014-03-13 07:47:37
您可以使用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" };
}
};
发布于 2014-03-13 07:43:14
数组不可赋值。但是您可以使用构造函数初始化列表:
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");
}
发布于 2014-03-13 07:43:31
请改用vector
:
std::vector<string> s;
s = {"abc","abc","abc","abc","abc"};
https://stackoverflow.com/questions/22372123
复制相似问题