class SomeClass{
....
static SomeType SomeVar;
...
};
...
SomeType SomeClass::SomeVar;
Ошибка при линковке
Ошибка возникает при выхове статической функции класса.
Проект прикреплен. попробуй те скомпилить. да и код глянте мож чего накосячел.Но все перепроверил, сверился с липпманом. все в прорядке вроде.
Статические функции не могут быть inline. Почитай Страуструпа, он хорошо описывает, как класс выглядит после компиляции, все станет понятно.
Без инлайна выдает тож ошибку, но уже другую.
У меня все компилится и линкуется на ура (без inline конечно)...
пользуюсь Visual Studio 2003
Добавил переменную статическую. и её использование в статической функции. Проект приложил. У меня такое не компилицо, умерает с ошибкой LNK2001. Использую 7.1 студию.
Типа:
Код:
Если нет, то на это и ругается линкер.
Код:
class test{
public:
static void foo(void);
private:
static int a;
};
public:
static void foo(void);
private:
static int a;
};
Цитата:
Переменную статическую объявил за пределами класса?
А переменные принадлежащие классу можно объявлять за пределами класса?О_о
Заработало. Но логики не понял. зачем надо просто дублировать переменные вне класса?
Если своими словами, то обычные переменные содаються при создании экземпляра объекта.
А экземпляр статической переменной (как и метода) создаються именно вот таким образом.