기본 생성자 또는 일반 형식의 이니셜 라이저가 실행됩니다. 이 컨텍스트에서는 벡터를 기본 구성합니다. 기본 생성자이므로 여기서는 필요하지 않습니다. v
은 이니셜 라이저가 없으면 기본적으로 생성되었습니다.
차기와 웃음에 대한
class Example {
private:
int defaultInt;
vector<int> defaultVector;
int valuedInt;
vector<int> sizedVector;
public:
Example(int value = 0, size_t vectorLen = 10)
: defaultInt(), defaultVector(), valuedInt(value), sizedVector(vectorLen)
{
//defaultInt is now 0 (since integral types are default-initialized to 0)
//defaultVector is now a std::vector<int>() (a default constructed vector)
//valuedInt is now value since it was initialized to value
//sizedVector is now a vector of 'size' default-intialized ints (so 'size' 0's)
}
};
, 당신은 또한 값
value
와
vector
vectorLen
을 가진 요소를 얻을 수
thirdVector(vectorLen, value)
을 할 수 있습니다. (그래서
Example(5, 10)
는
thirdVector
5
을 평가
10
요소의 벡터를 만들 것입니다.)이 때로는 더 명시 적으로 수행
이 경우 초기화 목록에서 명시 적으로 'v()'를 언급 할 필요가 없습니다. 그러나 목록에서 언급하고 싶다면 괄호를 써야합니다. –
이것을 _value-initialization_이라고합니다. – ildjarn