2017-11-17 20 views
-2

私はクラスCandidatで文字列を返そうとしています。以下は.hファイルです。C++で列挙型から文字列を返す方法は?

enum PartisPolitiques { 
    BLOC_QUEBECOIS, 
    CONSERVATEUR, 
    INDEPENDANT, 
    LIBERAL, 
    NOUVEAU_PARTI_DEMOCRATIQUE 
}; 

std::string reqPartiPolitiqueString() const; 


private: 
    int m_partiPolitique; 

そこで、ここで私は.cppファイルで行うことを試みたものです:

std::string Candidat::reqPartiPolitiqueString() const { 

if (m_partiPolitique == bloc){ 
    return "Bloc quebecois";}} 

しかし、その後、私は私の機能はありません「であるノーリターンを、持っていないことを示す警告/エラーが出ます戻り値、非voidを返す関数です。 "この場合、私は何を返すべきですか?

ありがとうございました

+0

条件がfalseの場合の処理​​について考えてみましょう。それから何が返されますか? –

+0

完全なエラーメッセージを含めてください。 @BoPerssonが示唆しているように、値を返さない可能性があるだけでなく、 'bloc'は未定義です。 – anthonyserious

答えて

1

すべての条件文が偽の場合、戻り関数は何ですか?

std::string Candidat::reqPartiPolitiqueString() const { 

    if (m_partiPolitique == BLOC_QUEBECOIS){return "Bloc quebecois";} 
    if (m_partiPolitique == CONSERVATEUR){return "CONSERVATEUR";} 

    return "UNDEF";// When all conditional statements are false 
} 
関連する問題