는 다음과 같은 코드를 생각해초기화 객체 데이터 멤버 C++
class Game {
private:
vector<SomeType*> vec;
OtherType obj;
public:
Game(char* configuration_file);
};
어떻게 하나 VEC와 OBJ 모두 configuration_file의 내용에 의존하고 있음을 고려하여 게임의 생성자를 구현해야을?
vec 및 obj를 구성하기 전에 configuration_file을 구문 분석해야하므로 초기화 목록을 사용할 수 없습니다.
constrcut vec 및 obj를 생성자 본문 내부에서 호출 할 경우 두 기본 생성자가 모두 호출되는 것보다이를 방지하는 방법이 있습니까?
이런 종류의 작업을 수행하는 일반적인 방법은 무엇입니까?
감사합니다.
왜 직접 복사하지 않습니까? obj = OtherType (parsedData); 생성자 본문에 기본 생성자를 비공개로 설정하면 body 데이터를 입력하기 전에 모든 게임 데이터 멤버를 초기화해야하므로 obj 기본 생성자에 대한 호출이 발생할 것이라는 것을 이해하면 –
이 컴파일되지 않습니다. 해당 호출을 저장하려고합니다. –
예, 본문 생성자를 입력하기 전에 개체의 모든 기본 생성자가 호출됩니다. john zwick 솔루션이 좋다. –