我试图遵循C ++设计背后的逻辑。这是我的问题。 在以下代码中,为什么我不能将其作为类成员身份启动,
vector fhd(10);
但我可以用方法
启动它vector abc(10);
第一种方式会不会引起编译器的混乱?
这是完整的代码
#include <iostream>
#include <vector>
using namespace std;
class testVector{
private:
int vl;
//error reported below
vector<int> fhd(10);
public:
testVector(int vl){
this->vl=vl;
}
vector<int> assVal(){
//OK below
vector<int> abc(10);
cout << "haha" << endl;
for(int iter=0; iter < vl; iter++){
fhd.push_back(iter);
}
return fhd;
}
void showVec(){
for(int iter=0; iter < fhd.size(); iter++){
cout<< fhd[iter] << endl;
}
}
};
int main() {
std::cout << "Hello, World!" << std::endl;
testVector cj(5);
cj.assVal();
cj.showVec();
return 0;
}
我们不能做到这一点背后的逻辑是什么?我知道有一些替代方法可以作为类成员,例如
vector<int> fhd = vector<int>(10);
答案 0 :(得分:0)
您希望矢量的固定大小为10吗?如果是这样,那么您可能更喜欢
std::array<int, 10> fhd;
如果您希望它是矢量,那么您可以使用
等语法为其指定默认值vector<int> fhd = std::vector<int>(10);