私はC++デザインの背後にあるロジックの下にいます。ここに私の質問です。 次のコードでは、なぜクラスメンバーシップとして開始できないのですか?クラスのメンバーとメソッド内の異なるベクトル開始の背後にある理由は何ですか?
ベクトルfhd(10);
私は方法
ベクトル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);
http://en.cppreference.com/wのような構文を使用してそれをデフォルト値を与えることができます
を好むかもしれません/ cpp/language/initializer_list –
' fhd =ベクトル(10);'をC++ 11以降使用することができます。 –
Jarod42
私はこれを理解しています。しかし、なぜそれは方法の中でそれを開始することを許さないのですか? C++開発の背後にある論理は何ですか? – drbombe