Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

WTL из View получить MainFrm

390
23 января 2006 года
lexus
143 / / 13.04.2004
Предположим у меня есть класс MainFrm и класс FirstView. В классе MainFrm определена некоторая переменная. Как мне обратиться к ней из FirstView?
406
24 января 2006 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by lexus
Предположим у меня есть класс MainFrm и класс FirstView. В классе MainFrm определена некоторая переменная. Как мне обратиться к ней из FirstView?


Как один из вариантов можеш обявить MainFrm как extern и
создать метод аксессор в MainFrm типа GetMyVar:
//mainfrm.h
extern MainFrm m_main;

class MainFrm {
public:
bool GetMyVar(){return m_MyVar;}//метод аксессор
private:
bool m_MyVar;
};
...

//FirstView.h
MainFrm m_main;

class FirstView{

void Method(){
bool var = m_main.GetMyVar();//получаем переменную с MainFrm.
}

};


Можно конечно получить так переменную и без метода аксессора если обявить ее секциии public класса MainFrm, но это плохой стиль. Можно конечно объявить себя другом для класса MainFrm и при этом получать доступ к закрытым членам.

Например:

class FirstView;//forward declaration

class MainFrm {
friend class FirstView;
....
private:
bool MyVar;
}

class FirstView{

void Method(){
bool var = m_main.MyVar;//получаем защищенную переменную с MainFrm.
}
};

Ну и так же есть и другие способы передачи указателя классу,не только обявив его глобально как экстерн. Можно передавать указатель на MainFrm при создании экземпляра класса FirstView:

class FirstView{
FirstView(MainFrm* lp){//конструктор
m_myclass=lp;
}

void f()
{
m_myclass //доступ к членам класса как описано выше

}

private:
MainFrm* m_myclass;
}

390
24 января 2006 года
lexus
143 / / 13.04.2004
Спасибо. Я думал там есть функция доступа к MainFrm как в MFC.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог