Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2012, 12:36   #1
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию Вызов наследуемой функции

class A {
public:
void Paint();
}

class B : public A {
public:
void Paint() {
A::Paint(); // как осуществить вызов наследуемой функции?
...
}
}
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 30.04.2012, 12:50   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Код:
class A {
public:
	void Paint()
	{
	}
};

class B : public A {
public:
	void Paint() {
		A::Paint(); // как осуществить вызов наследуемой функции?
	}
};

////////
B b;
b.A::Paint();
EUGY вне форума Ответить с цитированием
Старый 30.04.2012, 14:14   #3
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Переопределять не виртуальные функции родительского класса - не есть правильно.
Нужно либо сделать функцию виртуальной, либо использовать обертку, либо еще что-то, в зависимости от требований
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 30.04.2012, 14:41   #4
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Код:
#include <iostream>

class Base {
public:
    void Method() {
        std::cout << "Base::Method()" << std::endl;
    }
};

class Derived : public Base {
public:
    void Method() {
        std::cout << "Derived::Method()" << std::endl;
    }
};

int main()
{
    Base* object = new Derived();
    object->Method();
    return 0;
}
Вывод будет Base::Method();
В википедии есть отличный пример отличия перегрузки виртуального метода от не виртуального.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 30.04.2012, 15:41   #5
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Всем большое спасибо за помощь
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объедиднение наследуемой и младшей формы в одну - как? delphicoding Общие вопросы Delphi 9 25.07.2011 18:25
вызов функции -Anton- Microsoft Office Excel 2 09.06.2011 14:18
Вызов функции Anubys Помощь студентам 2 06.04.2011 16:40
Мини бэйсик:объявление функции, вызов функции , возврат. AL_LORD Помощь студентам 2 14.10.2010 17:48
Вызов функции new player БД в Delphi 5 07.10.2010 13:01