Форум программистов, компьютерный форум CyberForum.ru

Порядок вызова конструкторов/деструкторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сохранить\прочитать контейнер в бинарный файл http://www.cyberforum.ru/cpp-beginners/thread917997.html
ostream_iterator<string, char> out(cout, "\n"); set<string> mat; set<string> pat; string temp; cout << "Input Mat's friends:\n"; while (getline(cin, temp) && temp != "quit") mat.insert(temp); ofstream fout("mat.dat", ios_base::out | ios_base::app | ios_base::binary); fout.write((char *) &mat, sizeof mat);
C++ Змейка Решил написать собственный аналог змейки. Создал костяк программы, и у меня возникло три вопроса. 1. Змейка отказывается двигаться влево(нажат CapsLock и раскладка английская, при других параметрах все ОК). 2. Как сделать управление с помощью клавиш?(+Page Up, Page Down, Home, End) 3. Экран сильно мерцает при передвижении змейки. Возможно из-за system("cls"). Можно ли изменять положение змейки... http://www.cyberforum.ru/cpp-beginners/thread917994.html
C++ программа рождает программу?
Добрый день, вот такой вопрос: Возможно ли, чтобы программа в результате своих алгоритмов писала новые строки программного кода, а затем сама же по ним работала? Либо изменяла свой собственный код
Как, при разнесении программы на части, в С++, сделать так, чтобы подключаемый файл заметил компилятор? C++
думаю, всё ясно из темы :) Добавлено через 47 секунд Т.е. куда помещать подключаемый файл?
C++ Не пойму где ошибка http://www.cyberforum.ru/cpp-beginners/thread917949.html
#include <iostream> using namespace std; int main() { setlocale(0, ""); double a, b; char f; a = 0; f = "+"; cout << "Ваше число = " << a << endl;
C++ графы. поиск в ширину у меня такая задача: Определить, является ли неориентированный граф двудольным графом через алгоритм поиска в ширину. мне хотя бы алгоритм поиска в ширину подскажите, пожалуйста подробнее

Показать сообщение отдельно
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
05.07.2013, 08:25     Порядок вызова конструкторов/деструкторов
Вопрос чисто теоретический. Попробую сформулировать, не ругайте если получится коряво.
Например, есть некий класс для писанины в лог, который в конструкторе открывает файл, а в деструкторе его закрывает. Ну какнибудь, примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void _PrintLog(char*str);
 
class CLOG
{
public:
 FILE logfile;
 CLOG(){logfile=fopen("некийфайл.txt", "r");};
 ~CLOG(){fclose(logfile)};
 print(char*);
};
 
CLOG clog;
 
void _PrintLog(char*str)
{
 clog.print(str);
};
И всё это в отдельном .cpp файле, и я хочу чтобы другие классы могли печатать в этот лог (в том числе и из своих деструкторов) с помощью глобальной функции _PrintLog(char*). Но если деструктор ~CLOG() сработает раньше он закроет файл, после чего другие деструкторы не смогут вывести ничего в лог, ну и с конструкторами аналогично. Можно ли как-нибудь задать компилятору в каком порядке статические объекты из разных модулей должны создаваться и уничтожаться?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru