Форум программистов, компьютерный форум 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
3630 / 908 / 48
Регистрация: 10.01.2010
Сообщений: 2,445
03.02.2010, 22:10     Конструктор ссылки?
StateManager.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class StateManager{
public:
    typedef long state_type;
    typedef void (*executor)(int);
 
    StateManager::StateManager(state_type mainState, executor newExec);
private:
    executor exec;
    struct state_unit{
        state_type func;
        state_unit* parent;
        state_unit(state_type newState, state_unit* newParent = NULL);
    };
    state_unit* cur_state;
 
    void Push(state_type newState, bool execute = true);
}
StateManager.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
StateManager::state_unit::state_unit(StateManager::state_type newFunc, StateManager::state_unit* newParent)
: func(newFunc), parent(newParent)
{           }
 
StateManager::StateManager(state_type mainFunc, executor newExec)
: exec(newExec)
{
    cur_state->func = mainFunc;
}
 
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);
    }
}
C++
1
: func(newFunc), parent(newParent)
Ошибка:
error C2533: StateManager::state_unit::{ctor}: конструкторы не разрешены для возвращаемого типа
Странно, я просто хочу скопировать ссылку. parent ссылка, newParent тоже ссылка... или так нельзя?

C++
1
    state_unit* new_state = new state_unit(newState);
Ошибка:
error C2264: StateManager::state_unit::state_unit: ошибка в определении или объявлении функции; функция не вызвана
Может из за предыдущей ошибки?...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru