Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнить 2 рисунка одинакового размера в формате bmp и определить, сколько точек в них не совпадают по цвету https://www.cyberforum.ru/ cpp-beginners/ thread1886841.html
Напишите программу, которая сравнивает 2 рисунка одинакового размера в формате bmp и выдаёт в результате сколько точек в них не совпадают по цвету.
C++ Сортировка массивов методом выбора
В двумерной матрице 5*5 отсортировать диагональ методом выбора. Помогите пожалуйста.
Исследовать сходимость последовательности C++
Совсем сложно получается в мат. анализ и в функции. Помогите! Наработки есть, как это все вывести знаю, а вот с технической частью беда. Даже формулу не могу написать из-за этого чертового...
C++ Перевод с Паскаля на с++ Пусть дан файл целых чисел. Создайте файл вещественных чисел, значениями которого будут средние арифметические значения каждой пятёрки подряд идущих чисел. Последняя группа чисел может содержать... https://www.cyberforum.ru/ cpp-beginners/ thread1886824.html
C++ Операции с матрицами https://www.cyberforum.ru/ cpp-beginners/ thread1886820.html
Помогите пожалуйста закрыть последнюю лабораторную, предыдущие кое-как сам смог. Вот задание: 2. Дана целочисленная квадратная матрица. Определить: • номер первой из строк, содержащих хотя бы...
Измнение позиции в файле C++
Здравствуйте. Я не знаю ,как смещать позицию курсора в файле. Мне нужно вывести классы с макс.кол-вом учеников. И в самом файле структура с полями fam и klass.(т.е. фамилия и номер класса) я делаю...
C++ Найти произведение элементов заданной матрицы в строках, не содержащих отрицательных элементов
В заданной целочисленной прямоугольной матрице найти: произведение элементов в строках, не содержащих отрицательных элементов максимум среди сумм элементов диагоналей, параллельных главной...
C++ Cжать массив, удалив из него все элементы, модуль которых не превышает 1 const float N=10; float array={3.24, -0.16, 2.28, -0.16, -3.22, 7.14, 0.88, -3.20, 0.99, 4.15} ; сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившееся в конце... https://www.cyberforum.ru/ cpp-beginners/ thread1886712.html
C++ удалить из слова все последующие вхождения первой буквы https://www.cyberforum.ru/ cpp-beginners/ thread1886711.html
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных букв; между соседними словами - запятая, за последним словом - точка. Напечатать все слова...
C++ Напечатать слова из файла(строки) на С++ Получаем строку из текстового файла, результат записывается в другой файл, а также выводится на экран. Перед обработкой исходную строку вывести на экран. Напечатать все слова, состоящие только из... https://www.cyberforum.ru/ cpp-beginners/ thread1886707.html
Форумчанин
Эксперт CЭксперт С++
8165 / 5013 / 1436
Регистрация: 29.11.2010
Сообщений: 13,455
23.12.2016, 16:11 0

Виртуальный абстрактный класс

23.12.2016, 16:11. Показов 2960. Ответов 14
Метки (Все метки)

Ответ

На этом моменте (чисто виртуальные функции тоже могут иметь свою реализацию), у некоторых адептов начинается диссонанс. Однако это довольно удобный приём.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
struct A
{
    virtual const char* what() const = 0;
    virtual ~A() = default;
};
 
const char* A::what() const
{
    return "Default";
}
 
struct B : A
{
    const char* what() const override { return "B"; }
};
 
struct C : A
{
    const char* what() const override { return A::what(); }
};
 
int main()
{
    //A a; // error
    B b;
    C c;
    std::cout << b.what() << std::endl << c.what();
}
Добавлено через 2 минуты
Цитата Сообщение от Oryel Посмотреть сообщение
дык.....
С того самого же места:
На языке программирования C++ абстрактный класс объявляется включением хотя бы одной чистой виртуальной функции, типа virtual _сигнатура_функции_ =0;, которая, как и другие, может быть заменена.
Добавлено через 5 минут
Цитата Сообщение от Oryel Посмотреть сообщение
Чья реализация метода вывозиться от наследника этих классов?
Если методы виртуальные, то выберется последний переопределённый вариант виртуальной функции (если не указывать область видимости явно). В этом и суть виртуальных функций.

Добавлено через 5 минут
Создание объекта базового класса с конструктором в protected:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct A
{
protected:
    A() {}
};
 
struct B : A
{
    using A::A;
};
 
int main()
{
    B b;
    A a = static_cast<A>(b);
}


Вернуться к обсуждению:
Виртуальный абстрактный класс
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2016, 16:11
Готовые ответы и решения:

Виртуальный методы, абстрактный класс.
Здравствуйте. Теоретические вопросы. Что такое виртуальный методы и что такое абстрактный класс....

Абстрактный класс. Виртуальный метод, который возвращает T- тип
Привет! Допустим, есть абстрактный класс, и метод, который возвращает T-тип. class A {...

Абстрактный класс «Клиент банка», имеющий виртуальный метод для вывода данных о клиенте
Создать абстрактный класс «Клиент банка», имеющий поля ФИО и адрес, а также метод, для вывода...

Класс: Разработать абстрактный класс класс Point для задания координаты...
Всем привет, помогите пожалуйста решить задачу, я уже всю голову сломал, не знаю как решить... ...

14
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.