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

Конструктор ссылки? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ zlib Двойное архивирование\разархивирование http://www.cyberforum.ru/cpp/thread92076.html
Использую библиотеку zlib 1.2.3 Нужно сохранять массив объектов в файл и потом загружать её. Вес - 10 мегабайт. Решил сжать перед записью. Сделал... обнаружил что уже сжатый файл тоже бы мог сжаться хорошенько (60кб). Сжал кое как... получил 6кб. Отлично... Пытаюсь разжать дважды. Что то выходит, однако тест загруженого массива объектов в реальной программе показывает баги (этот массив...
C++ ОШИБКА Что за ошибка: Must use c++ for the type iostream?? http://www.cyberforum.ru/cpp/thread91688.html
C++ пропадающее окно
ещё раз здраствуйте. в предыдущий теме вы мне помогли http://www.cyberforum.ru/cpp/thread91603.html спасибо большое. но теперь у меня новая проблема. я использовал несколько програм втом числе и эту http://www.cyberforum.ru/cpp/thread89930.html в языке си. ошибок нет, но окно на секундо появляется и исчезает как-бутто эта программа ничего не делает. помогите пожалуйста.
C++ Внешние объекты в классе
Если класс исплользует какую то внешнюю переменную (например hWnd), то как будет более корректно его создать: class MyClass { private: HWND* _myWnd; public: MyClass(HWND* extWnd, ...) :_myWnd(extWnd); } Или нормально создать hWnd глобальным и в классе прописать extern?
C++ Выделение памяти http://www.cyberforum.ru/cpp/thread91503.html
MyClass& DXI =* new MyClass(); Это корректный код для выделения памяти, чтобы к переменной можно было обращаться не по ссылке? delete &DXI; Это удалит выделенную память? Кроме того... если MyClass* pDXI; А потом в теле программы где либо: pDXI = new MyClass(); То можно ли в деструкторе класса написать так
C++ Как подключить .h файл дважды? Такая проблема: имеется файл lib.h и еще 2 файла: NewLib1.h и NewLib2.h, в каждый из которых включен предыдущий файл: #include "lib.h" Проблема возникает, когда я компилирую файл program.cpp #include "NewLib1.h" #include "NewLib2.h" подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
 Аватар для insideone
3634 / 912 / 48
Регистрация: 10.01.2010
Сообщений: 2,457
04.02.2010, 16:21  [ТС]     Конструктор ссылки?
Переписал .cpp так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
StateManager::StateManager(state_type mainFunc, executor newExec)
: exec(newExec)
{
    cur_state = new state_unit(mainFunc);
}
 
StateManager::state_unit::state_unit(StateManager::state_type newFunc, StateManager::state_unit* newParent)
: func(newFunc),
parent(newParent)
{           }
 
 
 
void StateManager::Push(state_type newState, bool execute){
    state_unit* new_state = new state_unit(newState);
    new_state->parent = cur_state;
    cur_state = new_state;
    if ( execute == true )
    {
        exec(cur_state->func);
    }
}
Заработало... Хм... Хотя я так не понял что мешало конструктору StateManager не инициализировать state_unit* cur_state; и вывалиться в ошибку при первом запросе ... хм... ну ладно, главное что работает

ps. опять при написании путаю слова ссылка\указатель (в теме)

Добавлено через 14 часов 36 минут
Ещё проблемка по классу -
C++
1
State = new StateManager(0, &Sc.DO);
error C2276: &: недопустимая операция с выражением привязанной функции-члена
Нельзя делать ссылки на методы объектов?

Добавлено через 2 часа 36 минут
Ну да, понял... ведь методы объектов получают скрытый параметр указатель - this... да только как бы сообразить решить эту проблему
 
Текущее время: 08:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru