VC 6.0. Хочу так:
class WWW
{
public:
WWW();
~WWW();
static void SetStat(int d)
{
WWW::_qq = d;
};
private:
static int _qq;
};
int main(int argc, char* argv[])
{
WWW::SetStat(3);
return 0;
}
Почему не хочет работать? Голимый VC 6.0 не поддерживает? Чем тогда заменить?
А>Почему не хочет работать? Голимый VC 6.0 не поддерживает? Чем тогда заменить?
Думаю, что вот этим:
class WWW
{
public:
WWW();
~WWW();
static void SetStat(int d) { _qq = d; };
private:
static int _qq;
};
int WWW::_qq;
int _tmain(int argc, _TCHAR* argv[])
{
WWW::SetStat(3);
return 0;
}
Здравствуйте, Сергей Мухин, Вы писали:
СМ>если ты Аноним, и есть подозрения, что компилятор ошибается в тривиальных случаях, то это быстрей всего твоя ошибка
FDev правильно написал! спасиб ему! конечно я ошибся — забыл написать int WWW::_qq; после класса. уже было как то раз, но на другом компиляторе (кажется BCB5), и там он конкретно сказал что не хватает строчки, а тут (VC) линковщик чего то хочет, хрен его разберешь.
Кстате, объясните, почему если int WWW::_qq; добавить сразу после класса в .H файл, то ничего не работает, а есть в .CPP, к нему относящийся, в самый верх — то работает! Разьве это принципиально???
PS Спасибо что увидели мою невнимательную ошибку!
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Сергей Мухин, Вы писали:
СМ>>если ты Аноним, и есть подозрения, что компилятор ошибается в тривиальных случаях, то это быстрей всего твоя ошибка
А>
А>FDev правильно написал! спасиб ему! конечно я ошибся — забыл написать int WWW::_qq; после класса. уже было как то раз, но на другом компиляторе (кажется BCB5), и там он конкретно сказал что не хватает строчки, а тут (VC) линковщик чего то хочет, хрен его разберешь.
А>Кстате, объясните, почему если int WWW::_qq; добавить сразу после класса в .H файл, то ничего не работает, а есть в .CPP, к нему относящийся, в самый верх — то работает! Разьве это принципиально???
А>PS Спасибо что увидели мою невнимательную ошибку!
гм. в первом вопросе нет никаких файлов кроме одного.
надо все таки задавать вопрос правильно, как минимум указать что за ошибка и куда указывает.
я сильно подозреваю, что Вы описали int WWW::_qq; в .h файле и использовали его в нескольких .cpp файлах. не надо так делать.
ps
слова "ничего не работает", часто воспринимается, как компилируется, строится, но при запуске ломается,
а у вас в первом случае была ошибка линковщика, да и во втором похоже она.
Здравствуйте, Аноним, Вы писали:
А>VC 6.0. Хочу так:
А>А>class WWW
А>{
А>public:
А> WWW();
А> ~WWW();
А> static void SetStat(int d)
А> {
А> WWW::_qq = d;
А> };
А>private:
А> static int _qq;
А>};
А>int main(int argc, char* argv[])
А>{
А> WWW::SetStat(3);
А> return 0;
А>}
А>
А>Почему не хочет работать? Голимый VC 6.0 не поддерживает? Чем тогда заменить?
Надо добавить глобальное объявление(и определение) int WWW::_qq; после объявления класса WWW