2013-03-31 3 views
0

기본 생성자 이외의 다른 것을 사용하면 꽤 오랫동안 문제가되었습니다. 문제는 이것이다 :C++ 개인 멤버로 매개 변수가있는 생성자

나는이 당신이 우리가 필요로하지 않는 것이로드 없는지 확인하기 위해에있는 게임의 두 번째에 따라 다른 이미지를로드하는 것입니다이

Table(const std::string& LoadState) 
{ 
    ImageManager ImgMgr; 
    ImgMgr.add_resource_directory("img/"); 

    if (LoadState == "Menu") 
    { 

    } 
    else if (LoadState == "CardFlip") 
    { 

    } 
    else if (LoadState == "Game") 
    { 

    } 
} 

같은 생성자를 사용하고 있습니다.

나는 메뉴 객체

private: 
    Table LaTable("Menu"); 

로이를 구현하려고이 내가 이해하지 못하는 것 같아요, 이는 개인의 내부 초기화, 일한 적이있다.

시도 : 개인 : 표 LaTable;

이 문제는 이미지가 흰색 사각형으로 나타나는 문제입니다.

누군가가 이것을 처리하는 방법에 대한 올바른 방향으로 나를 가리킬 수 있습니까?

+0

이것은 매우 구체적입니다 ('Table', 'LaTable' 등). 하지만 생성자에서 초기화 목록을 사용하려고 했습니까? –

+1

예, MM의 응답을 기반으로 해 보았습니다. ;) 감사합니다 – Chivos

답변

3

Table의 개체를 클래스의 멤버로 만들려면 다음을 수행하십시오. 생성자를 호출하려면 해당 클래스의 생성자를 사용하십시오. 다음과 같이하십시오 :

// For example for a class named Menu 
class Menu 
{ 
public: 
    Menu() : LaTable("Menu") // <--- Here 
    { 
    } 

private: 
    Table LaTable; 
}; 
+0

감사합니다,이 해냈어! 정말 끝내주는 군. 기본이 아닌 생성자를 가진이 모든 일이 오랫동안 저를 괴롭혔습니다 !! 나는 그것이 쉬운 무엇인가이어야했다라는 것을 알고 있었다! – Chivos

+0

@Chivos : 천만에, 친구. – deepmax