2014-12-08 6 views
1

서식에 약간의 문제가있는 경우 사과를 드리기 위해 여기에 질문 한 적이 처음입니다. 또한 나는 녹슨 해요 그래서 구조체의 내 벡터에 대한 getter 함수를 만드는 방법에 관해서는 혼란스러워서 좋은 2 년 동안 처음으로 프로그래밍으로 돌아갈거야.std :: vector에 대한 getter 함수 만들기 <struct>

assetLoader.h는 : 템플릿 인수 2 :

public: 
    assetLoader(); 
    virtual ~assetLoader(); 

    std::vector<assetLoader:playerStruct> getTypesOfPlayer() {return typesOfPlayer;} 

private: 
    //Create a struct to hold the Player data 
    struct playerStruct 
    { 
    }; 
    playerStruct newPlayer; 
    std::vector <playerStruct> typesOfPlayer; 

내가 솔루션을 컴파일 할 때마다, 나는의 오류가 점점 오전 :

오류 : 유효하지 않은

오류가 템플릿 인수를 1 유효하지 않음

나는 여러 가지 시도를 시도했지만 나에게 아무런 도움이되지 않을 정도로 대단히 감사하겠습니다.

+3

'하는 AssetLoader : playerStruct'는해야한다'하는 AssetLoader :: playerStruct' –

+0

당신은 벡터의 사본을 반환한다

이 당신이 선언을 전달하는 것이 방법이다. 데이터로 무엇을하고 싶은지 모르겠지만 대신 참조를 반환하는 것이 좋습니다. 'const std :: vector &' – jasonm76

+0

답장을 보내 주셔서 감사합니다. 함수를 수정했지만 중첩 된 이름 지정자에 불완전한 유형의 'assetLoader'가 사용되었습니다. – RyuAkamatsu

답변

2

playerStruct를 전달하거나 이전에 정의해야합니다.

class assetLoader{ 
    struct playerStruct; 
public: 
    assetLoader(); 
    virtual ~assetLoader(); 
    std::vector<assetLoader::playerStruct> getTypesOfPlayer() { 
    return typesOfPlayer; 
    } 
private: 
    //Create a struct to hold the Player data 
    struct playerStruct 
    { 
    }; 
    playerStruct newPlayer; 
    std::vector <playerStruct> typesOfPlayer; 
}; 
+0

일부 서식이 손상되지 않습니다 – sp2danny

+0

당신은 완전히 옳았습니다. 나는 대답을 편집했습니다. – geoalgo

+0

죄송합니다. 지금까지 답변을 드리지 못했으며 지금까지 사용해 보지 못했습니다. 훌륭하게 작동합니다. 많은 감사 – RyuAkamatsu