왜 작동하지 다음을 수행합니다범위 지정 문제 클래스 생성자 체인 때 생성자 체인 때
#include <iostream>
#include <vector>
class cls {
public:
cls() {cls(5);} // want to resize v to 5
cls(int n) {v.resize(n);}
std::vector<int> v;
};
int main(int argc, const char* argv[]) {
cls x, y(5);
std::cout << x.v.size() << std::endl; // prints 0 <- expected 5
std::cout << y.v.size(); // prints 5
return 0;
}
내가 잘못 어떤 크기의 5의 v
을 가지고 두 객체를 기대?
이유 코드를 중복 작성하면 cls()
과 cls(n)
으로 별도의 코드를 작성해야하기 때문입니다.
은'{cls (5);}'오타입니다. 그것은'v.resize (5)'; – stardust
아니, 왜 묻는거야? – mchen
그건 제 요점입니다. 제 2 생성자가 그것을 처리하기를 바랍니다. 실제 코드 전체에서 단지'v.resize' 이상을 가지고 있기 때문에 코드 반복을 피하기를 희망했습니다. – mchen