2013-06-03 3 views
0

나는 float 배열의 래퍼입니다 숫자 벡터 클래스를 가지고 있고, 나는 원소 별 초기화 진절머리 : (좋아,하지만 바람직하지 부스트 C++ (11)을 사용하지 않고이니셜 라이저 목록과 비슷한 것을 가진 배열과 같은 클래스를 초기화 하시겠습니까?

Vector vec(3); 
vec(1) = 1; 
vec(2) = 2; 
vec(3) = 3; 

제정신 정말

Vector vec(3) = {1,2,3}; 
// --OR-- 
Vector vec(3) << 1 << 2 << 3; 

또는 아무것도 :) 내가 연주 할 수있는 연산자와 트릭, 한 번에 모두 같은 중괄호로 둘러싸인 초기화 목록을 닮은 무언가 을이 작업을 수행 할 수 있습니다.

답변

0

하나의 가능성은 Vector 클래스에 int* 생성자를 제공 한 다음 표준 초기화 목록으로 초기화 할 수있는 int 배열에서 초기화하는 것입니다. 이 같은 뭔가 :

int vecData[] = {1,2,3}; 
Vector vec(vecData, sizeof(vecData)/sizeof(vecData[0])); 

그것은 완벽한 해결책은 아니지만 하나 요소를 initalising 것보다 아마도 더 편리합니다.