Форум программистов, компьютерный форум, киберфорум
Наши страницы

Выполнение чистых виртуальных функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ дали тест на паре, пару вопросов http://www.cyberforum.ru/cpp-beginners/thread369376.html
Тест по спп 1) typedef struct time {int hour; int minute: int second }Time: Time lesson Выбрать операторы, содержащие ошибки:
C++ Возможно ли сделать кастом окна и кнопки для программ на builder Насколько понимаю, есть WinAPI и куча библиотек - это то место откуда С++ генерирует окна (пользовательские формы / поля ввода / кнопки и т.п.). Т.е. чтобы сделать свою dll с шаблонами или как это... http://www.cyberforum.ru/cpp-beginners/thread369374.html
Найти значение выражения и написать программу ((AB)^T-cd)e C++
Найти значение выражения и написать программу ((AB)^T-cd)e, где А= 570x 2045 B= 230 070
C++ Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
Ввести предложения и ключевое слово. Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово. без понятия с чего начинать
C++ Парсинг кодировки в начальном теге xml http://www.cyberforum.ru/cpp-beginners/thread369334.html
Есть строка <?xml version="1.0" encoding="UTF-8"?>, <?xml version="1.0" encoding="ANSI-1251"?>, или любая другая, начинающаяся на <?xml. Нульсимвола после неё нет, но границы найдены (два указателя...
C++ матрица Ввести прямоугольную матрицу вещественных чисел. Исключить из матрицы строки, в которых чаще всего встречается комбинация отрицательного элемента по соседству с положительным. подробнее

Показать сообщение отдельно
bearwoolfs
15 / 15 / 1
Регистрация: 10.01.2011
Сообщений: 275

Выполнение чистых виртуальных функции - C++

20.10.2011, 10:26. Просмотров 488. Ответов 5
Метки (Все метки)

Программа выдает ошибку в строке 50-51-51 переопределены различные базовые типы ??? Помогите пожалуйста разобраться задачей

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include<iostream>
using namespace std;
 
class Shape
{
public:
    Shape(){}// объявляю конструктор по умолчанию
    virtual ~Shape(){}// виртуальный диструктор
    virtual long GetArea()=0;
    virtual long GetPerim()=0;
    virtual void Draw()=0;
private:
};
 void Shape::Draw()
{
    cout<<"Abstract drawning mechanism"<<endl;
}
class Circle:public Shape
{
public:
    Circle(int radius):itsRadius(radius){}
    virtual ~Circle(){}
    long GetArea(){return 3*itsRadius*itsRadius;}
    long GetPerim(){return 9*itsRadius;}
    virtual void Draw();
private:
    int itsRadius;
    int itsCircumference;
};
void Circle::Draw()
{
    cout<<"Circle drawning routine here"<<endl;
    Shape::Draw();
}
class Rectangle:public Shape
{
public:
    Rectangle(int len,int width):
      itsLenght(len),itsWidth(width){}
      virtual ~Rectangle(){}
      long GetArea(){return itsLenght*itsWidth;}
      long GetPerim(){return 2*itsLenght+2*itsWidth;}
      virtual int GetLenght(){return itsLenght;}
      virtual int GetWidth(){return itsWidth;}
      virtual void Draw();
private:
    int itsWidth;
    int itsLenght;
}
void Rectangle::Draw()
{
    for (int i=0;i<itsLenght;i++)
    {
        for (int j=0;j<itsWidth;j++)
            cout<<"x"<<endl;
    }
    Shape::Draw();
}
class Square:public Rectangle
{
public:
    Square(int len);
    Square(int len,int width);
virtual ~Square(){}
long GetPerim(){return 4 * GetLenght();}
};
Square::Square(int len):Rectangle(len,len)
{}
Square::Square(int len,int width):Rectangle(len,width)
{
    if(GetLenght()!=GetWidth())
        cout<<"Eror,not Square"<<endl;
}
 
int main()
{
    int choice;
    bool fQuit=false;
    Shape * sp;
 
    while(1)
    {
    cout<<"1circle 2rectangle 3square 0quit"<<endl;
    cin>>choice;
 
    switch (choice)
    {
    case 1: sp=new Circle(5);
        break;
    case 2: sp=new Rectangle(4,6);
        break;
    case 3: sp=new Square(5);
        break;
    default: fQuit=true;
        break;
    }
    if (fQuit)
        break;
 
    sp->Draw();
    delete sp;
    cout<<""<<endl;
    }
    return 0;
}
Добавлено через 11 минут
Попытался реализовать более маленький код чистых виртуальных функций
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
#include <iostream>
using namespace std;
 
class Number
{
public:
    virtual void Metod()=0;
};
void Number::Metod()
{
    cout<<"Metod Number"<<endl;
}
class One
{
public:
     void Draw();
};
void One::Draw()
{
    cout<<"Metod One"<<endl;
    Number::Metod();// нестатическая ссылка не член должна указыать относительно заданного объекта???? что это ???
}
 
int main()
{
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru