2017-01-12 4 views
1

私はC++でコーディングしており、静的変数について学んでいます。助けてくださいアーキテクチャ用の未定義のシンボルx86

Undefined symbols for architecture x86_64:
"pizza::firstLetterFavPizza", referenced from:
pizza::favPizzaFirstLetterChan(char) in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

:私は私の練習のコードを書いたとき
は、私は、このエラーメッセージが表示されました!私は何が間違っているのか分からない。ソースコードは次のとおりです。

#include <iostream> 
class pizza 
{ 
public: 
    static char firstLetterFavPizza; 

    char favPizzaFirstLetterChan (char letter = firstLetterFavPizza) 
    { 
    pizza::firstLetterFavPizza = letter; 
    return pizza::firstLetterFavPizza; 
    } 
}; 

int main() 
{ 
    pizza *a = new pizza(); 
    pizza *b = new pizza(); 
    std::cout << a->favPizzaFirstLetterChan('c') << std::endl; 
    delete a; 
    std::cout << b->favPizzaFirstLetterChan('b') << std::endl; 
    delete b; 
    return 0; 
}; 

答えて

1

静的データメンバーは宣言していますが、定義していません。グローバル名空間のどこかにコードに定義を追加します。

char pizza::firstLetterFavPizza; 
関連する問題