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

виртуальные функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определение максимального значения http://www.cyberforum.ru/cpp-beginners/thread271906.html
Здравствуйте! Подскажите начинающему, как можно определить максимальное значение нескольких чисел, что бы не играться с условной инструкцией. Нашел оператор max, но он работает только с 2 числами. cin >>a>>b>>c>>d; result=max (a,b,c,d); /*не работает*/ Спасибо!
C++ Посмотрите код Помогите разобраться, пишу программу на С++. Вот код: app.cpp #include <SDL/SDL.h> #include "App.h" #include "Log.h" #include "Config.h" CApp::CApp() { http://www.cyberforum.ru/cpp-beginners/thread271894.html
Потоки C++
Помогите,пожалуйста!Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы.(С++).
Очередь C++
Всем приветики! Если кто нибудь знает помогите пожалуйста вот с такой задачкой. Есть какая-то очередь с элементами, нужно найти все нечетные и добавить в конец. Я вообще не знаю даже с чего начать
C++ Элементы http://www.cyberforum.ru/cpp-beginners/thread271861.html
Помогите перевести код программы к старому образцу ну для c++ 3.1 #include <queue> void main( void ) { std::queue<int> q, tmp; for ( int i = 1; i <= 10; i++ ) q.push( i ); // заполняем числами
C++ Реализовать программу, решающую СЛАУ методом Гаусса Реализовать программу, решающую СЛАУ методом Гаусса. Требования: 1. Программа должна выдавать решение для СЛАУ, имеющих единственное решение. 2. Программа должна работать со СЛАУ, имеющими произвольную размерность. 3. Квадратную матрицу и столбец свободных членов программа должна загружать из текстового файла. 4. После вычисления решения необходимо оценить погрешность решения СЛАУ A*x=b:... подробнее

Показать сообщение отдельно
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
08.04.2011, 23:29     виртуальные функции
Цитата Сообщение от Babulesnik Посмотреть сообщение
пример на моем коде
Твой код похож на безумие. Он заставляет меня плакать.

Цитата Сообщение от Babulesnik Посмотреть сообщение
Можно пояснить "даже не зная на этапе компиляции, какая фигура где находится, мы можем для любой фигуры использовать просто вызов функции area, и автоматически будет вызвана своя функция для каждой фигуры"?
Динамический полиморфизм, реализуемый при помощи наследования и виртуальных функций, позволяет вызывать функции, реализованные в наследниках через указатель или ссылку на базовый класс.

Есть, допустим, у тебя класс Фигура. В нём есть абстрактная функция Отрисовать. Фигура не умеет себя рисовать, потому что понятия не имеет, что она за фигура такая.

Ты наследуешь от Фигуры конкретные классы Квадрат, Круг, Треугольник. В каждом из этих классов реализуешь функцию Отрисовать. Теперь Круг умеет себя рисовать, Квадрат умеет себя рисовать и Треугольник умеет себя рисовать.

Теперь у тебя есть задача: создать кучу объектов этих классов и рисовать их. Как это сделать? Создаёшь массив указателей на объекты базового класса, т.е. класса Фигура. Любой указатель на объект класса-наследника ты можешь привести к указателю на объект базового класса, а потому можешь с помощью new создавать объекты классов Квадрат, Круг, Треугольник и помещать их в этот массив.

Если теперь пройтись по всем элементам массива, то вызывая функцию базового класса Отрисовать, реально будет вызываться функция наследника. То есть в этом массиве ты хранишь много-много разных фигур, говоришь им Отрисовать, а каждая из них сама рисует себя как нужно.
 
Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru