static в VC6.0
От: Аноним  
Дата: 07.10.05 18:00
Оценка:
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 не поддерживает? Чем тогда заменить?
Re: static в VC6.0
От: FDev Россия  
Дата: 07.10.05 19:03
Оценка:
А>Почему не хочет работать? Голимый 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;
}
Re: static в VC6.0
От: Сергей Мухин Россия  
Дата: 07.10.05 22:38
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Почему не хочет работать? Голимый VC 6.0 не поддерживает? Чем тогда заменить?


это весь текст программы?

какое сообщение компилятора?

ps
если ты Аноним, и есть подозрения, что компилятор ошибается в тривиальных случаях, то это быстрей всего твоя ошибка
---
С уважением,
Сергей Мухин
Re[2]: static в VC6.0
От: Аноним  
Дата: 07.10.05 23:07
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:


СМ>если ты Аноним, и есть подозрения, что компилятор ошибается в тривиальных случаях, то это быстрей всего твоя ошибка




FDev правильно написал! спасиб ему! конечно я ошибся — забыл написать int WWW::_qq; после класса. уже было как то раз, но на другом компиляторе (кажется BCB5), и там он конкретно сказал что не хватает строчки, а тут (VC) линковщик чего то хочет, хрен его разберешь.

Кстате, объясните, почему если int WWW::_qq; добавить сразу после класса в .H файл, то ничего не работает, а есть в .CPP, к нему относящийся, в самый верх — то работает! Разьве это принципиально???


PS Спасибо что увидели мою невнимательную ошибку!
Re[3]: static в VC6.0
От: Сергей Мухин Россия  
Дата: 07.10.05 23:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Сергей Мухин, Вы писали:



СМ>>если ты Аноним, и есть подозрения, что компилятор ошибается в тривиальных случаях, то это быстрей всего твоя ошибка


А>


А>FDev правильно написал! спасиб ему! конечно я ошибся — забыл написать int WWW::_qq; после класса. уже было как то раз, но на другом компиляторе (кажется BCB5), и там он конкретно сказал что не хватает строчки, а тут (VC) линковщик чего то хочет, хрен его разберешь.


А>Кстате, объясните, почему если int WWW::_qq; добавить сразу после класса в .H файл, то ничего не работает, а есть в .CPP, к нему относящийся, в самый верх — то работает! Разьве это принципиально???



А>PS Спасибо что увидели мою невнимательную ошибку!


гм. в первом вопросе нет никаких файлов кроме одного.
надо все таки задавать вопрос правильно, как минимум указать что за ошибка и куда указывает.

я сильно подозреваю, что Вы описали int WWW::_qq; в .h файле и использовали его в нескольких .cpp файлах. не надо так делать.

ps

слова "ничего не работает", часто воспринимается, как компилируется, строится, но при запуске ломается,
а у вас в первом случае была ошибка линковщика, да и во втором похоже она.
---
С уважением,
Сергей Мухин
Re: static в VC6.0
От: FoolS.Top Армения  
Дата: 10.10.05 11:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>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
Feierlich, misterioso
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.