Как получить доступ??? Новичок
От: Serge_O  
Дата: 28.03.02 22:45
Оценка:
Есть например класс
class CFirst:public CDialog
{
....
public:
....
CString m_var;
.....
}

Переменной m_var присваивается какое-то значение

Есть другой класс
class CSecond:public CDialog
{
....
public:
....
CString m_getVar;
.....
}

Как получить значение переменной m_var из класса CFirst в переменную m_getVar клаcca CSecond
Re: Как получить доступ??? Новичок
От: Gvido  
Дата: 28.03.02 23:56
Оценка:
Здравствуйте Serge_O, Вы писали:

SO>Есть например класс

SO>class CFirst:public CDialog
SO>{
SO>....
SO>public:
SO>....
SO>CString m_var;
SO>.....
SO>}

SO>Переменной m_var присваивается какое-то значение


SO>Есть другой класс

SO>class CSecond:public CDialog
SO>{
SO>....
SO>public:
SO>....
SO>CString m_getVar;
SO>.....
SO>}

SO>Как получить значение переменной m_var из класса CFirst в переменную m_getVar клаcca CSecond


Самый простой способ:
CFirst first;
CSecond second;
first.m_var = 0;
m_getVar = first.m_var; :))

Если нужен доступ прямо из функций класса, можно сделать так:
class CBase : public CDialog // базовый класс
{

protected:

CBase *first; // указатели
CBase *second; // на наследующие классы

};

class CFirst : public CBase
{
...
public:
CFirst(); { first = (CBase*) this; }
...
CString m_var;
...
};

class CSecond : public CBase
{
...
public:
CSecond(); { first = (CBase*) this; }
...
CString m_getVar;
...
};

Теперь в функциях классов CFirst и CSecond имеем к доступ:
(CFirst*) first->m_var;
(CSecond*) second->m_getVar;
Re: Как получить доступ??? Новичок
От: LeonGorbachov Россия  
Дата: 29.03.02 11:27
Оценка:
Здравствуйте Serge_O, Вы писали:

SO>Есть например класс

SO>class CFirst:public CDialog
SO>{
SO>....
SO>public:
SO>....
SO>CString m_var;
SO>.....
SO>}

SO>Переменной m_var присваивается какое-то значение


SO>Есть другой класс

SO>class CSecond:public CDialog
SO>{
SO>....
SO>public:
SO>....
SO>CString m_getVar;
SO>.....
SO>}

SO>Как получить значение переменной m_var из класса CFirst в переменную m_getVar клаcca CSecond



А можно еще так (это проще, чеп у предыдущего оратора, но не так интересно):

class CSecond:public CDialog
{
CSecond();
CSecond(CFirst* pFirst);
SetFirst(CFirst* pFirst);

....
public:
....
CString m_getVar;
.....
CFirst* m_pFirst;
}


CSecond::SetFirst(CFirst* pFirst);
{
  m_pFirst = pFirst;

}

CSecond::CSecond(CFirst* pFirst)
{
  SetFirst(pFirst);
}


CSecond::Funk();
{
  if(m_pFirst)
  m_getVar = m_pFirst->m_var;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.