Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Глобальные объекты класса


Автор: Tohey 7.1.2007, 01:03
Есть задачка, вывести некий текст перед вызовом main(), а вывод текста с main'a вообще не должен осуществиться. 
Я так понял это можно сделать с помощью глобальных обьектов класса, а что это такое и как с ними вообще работать?

Автор: nickless 7.1.2007, 01:17
Не понял зачем такой изврат, что ты понимаешь под "глобальными объектами класса" и причем тут ООП, но можно сделать вот так (даже с классом  smile ):
Код
#include <iostream>
using namespace std;

class Bla
{
    public:
        Bla() { cout << "Bla created" << endl; }
};

static Bla bla;

int main()
{
    cout << "main() called" << endl;
}


Переменные, объявленные как static, инициализируются только один раз, причем глобальные переменные - до вызова main()

Автор: zkv 7.1.2007, 01:24
Цитата(Tohey @  7.1.2007,  01:03 Найти цитируемый пост)
Есть задачка, вывести некий текст перед вызовом main(), а вывод текста с main'a вообще не должен осуществиться. 

простите, можно по русски, и по медленнее?

Автор: Tohey 7.1.2007, 02:40
nickless, спасибо! Изврат это точно, это такая задача по ООП smile. 

Автор: Tohey 7.1.2007, 15:25
Скажите, а что это за строчка "using namespace std;" и "endl", у меня TC++ ругается на эти вещи  smile 

Автор: Partizan 7.1.2007, 19:36
меняй #include <iostream>
на #include <iostream.h>

а using namespace std; yбирай вообще...

Автор: Tohey 7.1.2007, 23:56
Так компилится, но всё равно выводит то что в main()

Автор: Partizan 8.1.2007, 00:25
гммм....интересно....а как сделать так чтобы из мэйна никакой текст не выводился)...

Автор: nickless 8.1.2007, 01:00
Подсказка: на клаве есть такая кнопка - бэкспейс (backspace), вот на неё надо нажать особым образом, и всё будет в ажуре  smile 

Автор: maxim1000 8.1.2007, 01:20
можно попробовать перенаправить куда-нибудь стандартный вывод
(правда, это не помешает в main'е вернуть его на место или пользоваться, например WinAPI'шными функциями smile)

Автор: Любитель 8.1.2007, 01:28
Млин, досрочный выход:
1. инклюд stdlib.h или cstdlib
2. exit или std::exit

Автор: Tohey 8.1.2007, 09:54
млин, я забыл про exit(0); классы  с конструкторами с толку сбили, всем большое спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)