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

полиморфизм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ начало и конец цикла в коде. http://www.cyberforum.ru/cpp-beginners/thread225959.html
Вот программа по определению магического квадрата из матрицы, заданной в txt файле. #include "stdafx.h" #include <iostream> #include <fstream> #include <cmath> using namespace std; int main() { const int z=3; int q,A, i,j,e,r=1, stolb=0, strok,stro, stol, diag1=0, diag2=0, t, o,k; // diag1- побочная диагональ fstream(fin);
C++ Builder Медиапроигрыватель Скажите пожалуста первый день осваиваю С++ в среде редактора Builder 6 . Занимаюсь по видео урокам, там на примере показывается создание простейшего проигрывателя в Builder 6, но почему то редактор выдает ошибку в коде в этой строке if (OpenDialog1->Execute()) MediaPlayer1->FileName=OpenDialog1->FileName MediaPlayer1->Open(); вот весь код:... http://www.cyberforum.ru/cpp-beginners/thread225948.html
C++ Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси
Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси. сделать нужно на С(визуал студио 05)
C++ Каким методом можно действовать ?
Надо по заданному числу Н найти такое число К, такое что десятичная запись КК(с чертой наверху, т.е. если за каждый разряд числа принять переменную : abcd , то в моем случае должно получится abcdabcd) равна квадрату натурального числа и имеет длину от Н до Н+23(Н от 1 до 2323). Ясно, что надо реализовывать длинную арифметику,но что потом, действовать перебором не получится. Каким методом можно...
C++ Двухсвязный Кольцевой Список http://www.cyberforum.ru/cpp-beginners/thread225936.html
Дано вот такое задание:В двухсвязном кольцевом списке определить минимальный и максимальный элементы,а затем заменить их значения на сумму этих элементов :) Вроде и простое задание,но у меня не получаеться :( Помогите с кодом пожалуйста :friends::wall:
C++ (int)a и int(a) Чем отличаются (int)a и int(a)? подробнее

Показать сообщение отдельно
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
09.01.2011, 03:00     полиморфизм
функция возвращает указатель на объект типа Student
Полиморфизмом называют явление, при котором классы-потомки могут изменять реализацию метода класса-предка, сохраняя его интерфейс

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
31
32
33
34
35
36
37
class Shape
{
public:
    virtual double GetArea()=0;
};
 
class Rectangle : public Shape
{
public:
    virtual double GetArea()
    {
        return width * height;
    }
private:
    double  width, height;
};
 
class Circle : public Shape
{
public:
    virtual double GetArea()
    {
        return 3.1415927 * radius * radius;
    }
private:
    double radius;
};
 
int main()
{
    Shape *p = new Rectangle;
    Shape *s = new Circle;
    p->GetArea();
    s->GetArea();
 
    return 0;
}
что вы поняли конкретно кроме полиморфизма?
в данном коде мы вычисляем площадь, соответственно для каждой фигуры она вычисляется по разному. Для этого мы переопределяем метод GetArea() базового класса. Но если сделать так
C++
1
2
Shape *p = new Rectangle;
p->GetArea();
то вызовется метод класса Shape, а не метод класса Rectangle. Чтобы такого не было мы эти методы делаем виртуальными.
 
Текущее время: 22:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru