4

静的変数をインクリメントできない理由を理解していただけますか? 私はこれに直面しています: *エラー LNK2001: 未解決の外部シンボル "private: static unsigned int Counter::m_curCounters" (?m_curCounters@Counter@@0IA)*

カウンター.cpp

#include "counter.h"

static unsigned int m_curCounters = 0;

Counter::Counter(const char* p){
    ...
    m_curCounters++;
}


Counter::Counter(){
    ...
    m_curCounters++;
}
4

3 に答える 3

4

m_curCountersカウンターで宣言したと思います。
次に、次のように定義する必要があります

unsigned int Counter::m_curCounters = 0;
于 2013-04-14T11:13:11.590 に答える
1

コードの半分が提供されたので、精神的なデバッグを行います。ヘッダーファイルにあると思うものは次のとおりです。

class Counter
{
    static unsigned int m_curCounters;
};

したがって、.cpp ファイルでは、クラスのスコープ内で静的変数を定義するのを忘れています。必要なもの:

unsigned int Counter::m_curCounters = 0;
于 2013-04-14T11:14:08.463 に答える