2012-04-02 3 views
0

Я создал класс, и в публичной части, я заявил следующее:используя статический член класса в .cpp файле

static int num; 

и в конструкторе, который находится в том же файле .h , Я:

num++; 

До сих пор все работает нормально.

Проблема заключается в том, что реализация моего деструктора в .cpp, я писал:

num--; 

Но визуальный не позволит мне сделать это. Он кричит:

фатальную LNK1120 ошибки: 1 неразрешенных внешних

Любая помощь?

+1

Чтобы ответить на ваш вопрос: любой код? Также: вы ** определили ** (не ** declare **), что статический член? Вы используете какую-либо книгу? – Griwes

ответ

3

Вы должны определить свою статическую переменную в файле * .cpp. Обычно это делается сверху. Например:

// in the *.h file 
class MyClass 
{ 
    public: 
     static int num; 
     MyClass(); 
     ~MyClass(); 
}; 

// in the *.cpp file 
int MyClass::num = 0; 

MyClass::MyClass() 
{ 
    MyClass::num++; 
} 

MyClass::~MyClass() 
{ 
    MyClass::num--; 
} 
Смежные вопросы