Форум программистов, компьютерный форум CyberForum.ru

Виртуальный методы, абстрактный класс. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Variable or field 'set_color' declared void http://www.cyberforum.ru/cpp-beginners/thread453438.html
написал прог из книги вчём проблема ? #include <iostream> #include <msoftcon.h> #include <math.h> void draw_circle(int ,int ,int ); void set_color(color foreground, color background); void set_color(color foreground, color background) { textcolor( static_cast<int>(foreground) ); textbackground( static_cast<int>(background) );
C++ не верно решает Дан массив A размера N и целые числа K и L (1 ≤ K < L ≤ N). Переста- вить в обратном порядке элементы массива, расположенные между эле- ментами AK и AL, не включая эти элементы. #include <iostream> #include <math.h> using namespace std; void main() { const n=10; http://www.cyberforum.ru/cpp-beginners/thread453436.html
Найти номера двух ближайших элементов из этого массива, т. е. элементов с наименьшим модулем разности C++
Дан массив размера N. Найти номера двух ближайших элементов из этого массива (т. е. элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания.
Преобразование списка. C++
Есть класс, реализующий линейный двухсвязный список. #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class Element{ public: int Info; Element *Next, *Prev; Element(){
C++ Вывести на экран фамилии и имена трех худших по среднему баллу учеников http://www.cyberforum.ru/cpp-beginners/thread453411.html
задача На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат: <Фамилия> <Имя> <оценки>, где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15...
C++ Изменение регистра строки Принимаем строку с клавиатуры. С пом. функции getline(). string clientName; getline(cin,clientName); Необходимо перевести всю строку в нижний регистр, независимо от того какие символы ввел пользователь. Подскажите, пожалуйста. подробнее

Показать сообщение отдельно
_engineer_
115 / 72 / 2
Регистрация: 23.01.2012
Сообщений: 186
26.02.2012, 23:40     Виртуальный методы, абстрактный класс.
Если несколько упрощать:
Абстрактный класс - Класс который описывает только прототипы функций без их реализации(в терминологии С++ интерфейс) , соответственно раз нет реализации не одного метода(функции), то нельзя создать экземпляр этого класса. Используется для того что бы все наследники этого класса имели не взирая, что они делают, единый интерфейс(вызов методов).
Виртуальный метод (функция) - Это такая функция которая переписана для каждого наследника класса. И определения какую функцию вызывать, программа будет решать не в момент написания кода, а в момент его выполнения. Допустим у вас три класcа:
B - базовый
N1 - наследник от B
N2 - наследник от B или N1
во всех трех классах есть виртуальная функция "V" которая в разных классах выполняет различные действия.
И есть в программе функция "f" которая в качестве аргумента получает указатель на базовый класс и имеет следущею реализацию В->V();
Теперь в эту функцию, Вы можете передать в качестве аргумента, класс B или N1 или N2 и будет выполнена функции V именно того класса который Вы передали.
Ну если коротенько, то гдето так.
 
Текущее время: 10:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru