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

Полиморфизм :( - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы. http://www.cyberforum.ru/cpp-beginners/thread84031.html
Класс футбольная команда Класс имеет 3 поля Одно поле символьное (название команды) И еще 2 поля числовые (количество игроков и количество игр) 2 метода: 1)Метод инициализации полей; 2)вывод на экран значения полей Создать два объекта класса , инициализировать и вывести на экран Решите, пожалуйста. borland c++
C++ В квадратной матрице заменить элементы главной и побочной диагонали на минимальный элемент задача такая:в квадратной матрице заменить элементы главной и побочной диагонали на минимальный элемент найденый среди элементов находящихся ниже главной диагонали. т.е. допустим матрица 5х5: 2 3 5 6 5 8 3 5 7 1 3 4 8 7 3 4 5 1 8 9 3 5 7 5 6 тогда: 1 3 5 6 1 8 1 5 1 1 http://www.cyberforum.ru/cpp-beginners/thread84026.html
Возведение в степень C++
Подскажите оператор для возведения числа в n-ую степень. Зарание спасиба
C++ Матрица ( тока начинаю програмировать)
вот задача : В исходном текстовом файле «In.txt» посчитать количество строк, которые начинаются и заканчиваются на одну и ту же букву. В результирующий файл «Out.txt» записать строку вида «В исходном файле ___ строк, удовлетворяющих заданному условию», если количество найденных строк больше нуля или «В исходном файле нет искомых строк» в противном случае. Если исходного файла не существует,...
C++ Структуры и файлы http://www.cyberforum.ru/cpp-beginners/thread83999.html
Ребята, спасите!!! Используя структурный тип данных, создать базу данных и организовать с ней работу, включая поиск нужной информации, ее корректировку (изменение значений полей структур, дозапись информации в файл или ее удаление), вывод информации на экран. Программа должна содержать меню, позволяющее работать с базой данных. Задание: Сохранить сведения об учениках школы: фамилия,...
C++ Работа с файлами!!! помогите решить этот бред, а то с инста попрут 1)описать функцию triangle, формирующую текстовой файл из 9 строк, в первой из которых-один символ `1`, во второй-два символа `2`, ..., в девятой-девять символов `9`. 2)дан некоторый файл, компонентами которого являются структуры типа: день,месец,год. описать функцию, проверяющую по сегодняшней дате (введенной с клавиатуры), какая из дат в... подробнее

Показать сообщение отдельно
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
10.01.2010, 12:26     Полиморфизм :(
надеюсь это тебе поможет:
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
class base{
      protected:
              char name[80];
      private:
              int i;
      public:
             base(){cout << "constracting base with default constructor\n"; i=5;};
             base(const char *p){cout << "constracting base ";strcpy(name,p); cout << name << endl;}
             ~base(){cout << "destructing base " << name << endl;}
             //virtual - Г·ГІГ® ГЎГ» îáüÿâèòü, Г·ГІГ® f Г*Г*ñëåäóåòñÿ Гў ГЄГ*Г·ГҐГ±ГІГўГҐ ГЁГ*òåðôåéñГ*.
             virtual int f(int j){cout << "using int f(int) from base\n";return j*j;}
             int get(){return i;}
};
 
class secondary: public base{
      private:
             // char name[80];// Г*ГҐ Г*Г*äî ïîòîìó, Г·ГІГ® ГіГ*Г*ñëåäîâГ*Г*Г® ïîëå base::name;
             // ïîëå int i Г*ГҐ ГіГ*Г*ñëåäîâГ*Г*Г*Г®.
             int x;
      public:
             secondary(const char *p){cout << "constracting secondary ";strcpy(name,p); cout << name << endl;x=3;}
             ~secondary(){cout << "destructing secondary " << name << endl;}
             int f(int i){cout << "using int f(int) from secondary\n"; return i*i*i;} //âîò ГЄГ*ГЄ ГЎГ» ïîëèìîðôГ*Г*Гї ГґГіГ*êöèÿ.
             //ГҐГ±ГІГј int base::f(int) ГЁ ГҐГ±ГІГј int secondary::f(int) - îäГ*Г® èìÿ, Г°Г*Г§Г*ûå Г°Г*åëèçГ*öèè.
             int get(){return x;}
};
int main()
{
    {
          base *p=new secondary("ABC"); //áûë ñîçäГ*Г* îáüåêò ГЄГ«Г*Г±Г±Г* secondary, ГЁ ГҐГЈГ® Г·Г*Г±ГІГј ГЄГ«Г*Г±Г±Г* base òîæå áûëГ* ñîçäГ*Г*Г*.
           // p ññûëâГ*ГҐГІГ±Гї Г*Г* ГІГі Г·Г*Г±ГІГј îáüåêòГ*, êîòîðГ*Гї ÿâëÿåòñÿ base, ГЅГІГ® Г*Г*çûâГ*ГҐГІ "ñðåç ГЄГ«Г*Г±Г±Г*".
          //åñëè secondary s, ГІГ® s ГЄГ*ГЄ ГЎГ» ñîñòîèò ГЁГ§ äâóõ Г·Г*Г±ГІГҐГ© îäГ*Г*(secondary) âêëþ÷Г*ГҐГІ äðóãóþ(base);
          cout << "----\n";
          cout << p->f(5) << " " << p->get()<< endl;
          cout << "----\n";
          secondary *q;
          q=(secondary*)p; //p ГЁ q ГіГЄГ*çûâГ*ГѕГІ Г*Г* îäèГ* ГЁ òîò æå îáüåêò. Г§Г*ìåòèì, Г®Г* Г*ГҐ èñïîðòèëñÿ ïîñëå ñðåçГ*
          cout << q->f(5) << " " << q->get() << " "<<q->base::get() << endl;
          cout << "----\n";
          delete p;
          cout << "----\n";
          cout << "now q\n";
          delete q;
    }
    cout <<"-------------------------------------\n";
    {
          secondary s("DEF");
          cout << "----\n";
          base *p=0;
          cout << "----\n";
          p=&s;
          cout << "----\n";
          delete p;
    }
    cout <<"-------------------------------------\n";
    {
          secondary *p=new secondary("GS");
          cout << "----\n";
          cout << p->f(5) << endl;
          cout << "----\n";
          delete p;
    }
    getch();
    return 0;
}
запусти и внимательно почитай вывод на экран и коментарии

Добавлено через 20 минут
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
38
39
40
41
#include <iostream>
#include <conio.h>
using namespace std;
 
class MyInterface{ //ýòîò ГЄГ«Г*Г±Г± îáåñïå÷èâГ*ГҐГІ ГЁГ*òåðôåéñ (ГІГ*ГЄ Г±ГЄГ*Г§Г*ГІГј Г*Г*áîð èìåГ* ГґГіГ*êöèé) äëÿ ðåГ*ëèçГ*öèè.
      public:
            virtual int get()=0;
            virtual void set(int)=0;
};
 
class MyClass1:public MyInterface{
      private:
              int info;
      public:
             MyClass1(){}
             int get(){return info;}
             void set(int i){info=i*i;}
};
class MyClass2:public MyInterface{
      private:
              int info;
      public:
             MyClass2(){}
             int get(){return info;}
             void set(int i){info=i+i;}
};
int main()
{
    MyInterface * p=new MyClass1();
    p->set(4);
    cout << p->get() << endl;
    delete p; //ГіГ¤Г*ëèëè îáüåêò ГЄГ«Г*Г±Г±Г* MyClass1;
    //îäГ*ГЁ ГЁ òåæå èìåГ*Г*, Г*Г® Г°Г*Г§Г*Г*Гї ðåГ*ëèçГ*öèÿ, ГЅГІГ® ГЁ ГҐГ±ГІГј ïîëèìîðôèçì.
    p=new MyClass2();
    p->set(5);
    cout << p->get() << endl;
    delete p; //ГіГ¤Г*ëèëè îáüåêò ГЄГ«Г*Г±Г±Г* MyClass2;
    getch();
    //мы можем не значть точно какого класса обьект (MyClass1 или MyClass2) но пользоваться его методами, которые сами знают что им делать, т. к. у каждого класса они перегружены так что бы работать с его обьектами корректно.
    return 0;
}
 
Текущее время: 07:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru