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

Ваш аккаунт

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

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

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

вопрос по ООП

31K
24 октября 2012 года
deadok
16 / / 15.01.2008
возможно ли из родительского класса обращение к методам / переменным потомка? (с++)
2.2K
24 октября 2012 года
REFOT
181 / / 08.04.2005
Так нельзя, но можно так:

Код:
class figure {
public:
    virtual void paint() = 0;
};

class rectangle: public figure {
public:
    void paint();
};

void rectangle::paint(void) {
    printf("paint\r\n");
}

void tmain()
{
   rectangle rect;
   figure* pfigA = (figure*) ▭
   pfigA->paint();  

   figure& figA = (figure&) rect;
   figA.paint();  

   return 0;
}
70K
25 октября 2012 года
ProkletyiPirat
76 / / 25.07.2012
поясню то что выше

 
Код:
class A{ Fa() }
class B:A{ Fb() }
//...
A *ap, obj_a ;
B *bp, obj_b ;
указатель на базовый объект (*ap) можно использовать для указания на потомка

 
Код:
ap=obj_b; //допустимо

ap = obj_a ;
ap->Fa();//допустимо так как Fa() принадлежит A
ap->Fb();//недопустимо так как Fb() непринадлежит A

ap = obj_b ;
ap->Fa();//допустимо так как Fa() принадлежит B (он их наследует от A)
ap->Fb();//допустимо так как Fb() принадлежит B
если ap действительно указывает на объект B, то можно получить доступ к свойствам\методам класса B
274
24 октября 2012 года
Lone Wolf
1.3K / / 26.11.2006
Да. Но уточните что вы имеете ввиду.
31K
24 октября 2012 года
deadok
16 / / 15.01.2008
Код:
class figure {
};

class rectangle: public figure {
public:
    void paint(void);
};

void rectangle::paint(void) {
}

figure figA;

void main(void) {
    figA.paint();       // ошибка
}
возможен ли вызов метода не прибегая к указателям (вроде this и т.п.)?
31K
25 октября 2012 года
deadok
16 / / 15.01.2008
все ясно, спасибо (без указателей нельзя...).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог