Re[3]: Не печатается из деструктора глобального объекта
От: artelk  
Дата: 28.11.03 14:34
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Здравствуйте, Lorenzo_LAMAS, Вы писали:


LL>> Ну, я бы такое вообще не стал писать. Где гарантия, что cout не будет разрушен раньше твоего глобального объекта?


ПК>27.3/2

ПК>

The objects are not destroyed during program execution. 265)

ПК>265) Constructors and destructors for static objects can access these objects
ПК>to read input from stdin or write output to stdout or stderr.


ПК>Скорее всего, у Amon-RA старый компилятор (например, VC++6).


Конструкторы и деструкторы имеют возможность непосредственно писать в потоки stdin и stdout (через системные вызовы). В классе CCC идет косвенный вывод в stdout через интерфейс std::cout, представляющего из себя обычный объект, не имеющий никаких преимуществ перед другими статическими объектами (вероятно). Если он разрушен раньше Glob_VAR, то вывод не произойдет (в лучшем случае). Можно попробовать заменить
cout << "..."; на printf("..."); — думаю заработает, т.к. printf — функция, а не объект.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.