これをコンパイルするのに苦労しています。静的変数に関係していると思いますが、何をしているのか100%確信が持てません。これが私が得続けるエラーメッセージです:
アーキテクチャ x86_64 の未定義シンボル: "Counter::nCounters"、次から参照: main.o の Counter::Counter(int, int)
main.o の Counter::getNCounters()
Counter::Counter.o の Counter(int, int)
Counter::getNCounters() in Counter.o
ld: アーキテクチャ x86_64 のシンボルが見つかりません
clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)
ヘッダーファイルは次のとおりです。
#ifndef project1_Counter_h
#define project1_Counter_h
class Counter
{
private:
int counter;
int limit;
static int nCounters;
public:
Counter(int, int);
void increment();
void decrement();
int getValue();
static int getNCounters();
};
#endif
.cpp ファイルは次のとおりです。
#include "Counter.h"
Counter::Counter(int a, int b)
{
counter = a;
limit = b;
nCounters++;
}
void Counter::increment()
{
if (counter < limit)
counter++;
}
void Counter::decrement()
{
if (counter > 0)
counter--;
}
int Counter::getValue()
{
return counter;
}
int Counter::getNCounters()
{
return nCounters;
}
また、main.cpp は単純な Hello World プログラムです。どんな助けでも大歓迎です。