Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » [C++] Описание чисто-виртуальной функции???

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

molecular

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, столкнулся с таким замешательством.
Мы учили C++ на первом курсе, нам говорили, что описывать чисто-виртуальную функцию нельзя, так как она указывается на абстракцию класса.
Также это сказано и на вики.
 
На втором курсе попался преподаватель, который утверждает обратное... что можно описать pure virtual func и вызвать ее.

Код:
 
#include <iostream>
 
using namespace std;
 
class base
{
public:
    virtual void func() = NULL{ cout << "Base" << endl; }
};
 
class derived : public base
{
public:
    void func()
    {
        cout << "Derived" << endl;
    }
};
 
void main()
{
    derived b;
    b.func(); // Вызываем функцию, описанную в производном классе
    b.base::func(); // Вызываем функцию описанную в базовом классе
 
    system("pause");
}
 

 
Что мы в итоге получаем:
- базовый класс остается абстрактным
- описанную чисто-виртуальную функцию мы также можем вызвать

Всего записей: 3 | Зарегистр. 07-10-2013 | Отправлено: 20:51 17-10-2014
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если у вас такое компилируется, значит проблем у вас нет.
Впрочем, вам бы следовало, помимо всего прочего, чуть более внимательно просмотреть этот раздел форума. Тогда бы вы увидели тему Вопросы по программированию на C/С++ и не стали бы плодить бесполезные сущности хотя бы не в своем коде.

Всего записей: 2025 | Зарегистр. 02-09-2005 | Отправлено: 21:14 17-10-2014 | Исправлено: ItsJustMe, 21:14 17-10-2014
dix75



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
На втором курсе попался преподаватель, который утверждает обратное... что можно описать pure virtual func и вызвать ее.

 
Да, это так.
 
Объявляешь её и вызываешь в конструкторе и получать ошибку

Всего записей: 157 | Зарегистр. 08-12-2005 | Отправлено: 16:12 18-02-2015 | Исправлено: dix75, 16:13 18-02-2015
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » [C++] Описание чисто-виртуальной функции???


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru