0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 7
1

Ошибка при компилировании

20.05.2013, 19:34. Показов 781. Ответов 1
Метки нет (Все метки)

При компилировании выдается ошибка "невозможно создать экземпляр абстрактного класса". Подскажите, что с ней делать, пожалуйста.

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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include "stdafx.h"
#include <iostream>
using namespace std;
 
class Figura
{
    virtual void Print() = 0;
    virtual void Read() = 0;
    virtual double Volume (double _a) = 0;
    virtual double Surface (double _a, double _b) = 0;
};
 
class Ellips : public Figura
{
protected:
    double a,b;
public:
    void Print();
    void Read();
    Ellips(double _a=0, double _b=0){a = _a; b = _b;}
    Ellips(const Ellips &ob){a = ob.a; b = ob.b;}
    double Volume (double _a, double _b);
    double Surface(double _a, double _b);
};
 
class Trapecia : public Figura
{
protected:
    double a,b,c,d,h;
public:
    void Print();
    void Read();
    Trapecia(double _a = 0, double _b = 0, double _h = 0, double _c = 0, double _d = 0){a = _a; b = _b; h = _h; c = _c; d = _d;}
    Trapecia(const Trapecia &ob){a = ob.a; b = ob.b; h = ob.h; c = ob.c; d = ob.d;}
    double Volume (double _a, double _b, double _c, double _d);
    double Surface(double _a, double _b, double _h); // В случае ошибки - смотри здесь, и удали из периметра h
};
 
class Square : public Trapecia 
{
protected:
    double a;
public:
    void Print();
    void Read();
    Square(double _a = 0){a = _a;}
    Square(const Square &ob){a = ob.a;}
    double Volume (double _a);
    double Surface(double _a);
};
 
void Ellips :: Read()
{
cout << "Vvedite znachenie bol'shoi poluosi ellipsa: ";
cin >> a;
cout << "\nVVedite znachenie malen'koi poluosi ellipsa: ";
cin >> b;
}
 
double Ellips :: Surface (double a, double b)
{
return 3.14*a*b;
}
 
double Ellips :: Volume (double a, double b)
{
return 4*((3.14*a*b+(a*a-2*a*b+b*b))/(a+b));
}
void Ellips :: Print()
{
    cout << "Ellips \n";
    cout << "P = " << Volume(a,b);
    cout << "\nS = " << Surface(a,b);
}
 
void Trapecia :: Read()
{
cout << "Vvedite znachenie pervogo osnovania: ";
    cin >> a;
cout << "VVedite znachenie vtorogo osnovania: ";
cin >> b;
cout << "Vvedite znachenie visoty: ";
cin >> h;
cout << "Vvedite znachenie pervoi bokovoi storoni: ";
cin >> c;
cout << "Vvedite znachenie vtoroi bokovoi storoni: ";
cin >> d;
}
 
double Trapecia :: Surface (double a, double b, double h)
{
return (h*(a+b))/2;
}
 
double Trapecia :: Volume (double a, double b, double c, double d)
{
return (a+b+c+d);
}
 
void Trapecia :: Print()
{
cout << "Trapecia \n";
cout << "P = " << Volume(a,b,c,d);
cout << "\nS = " << Surface(a,b,h);
}
 
void Square :: Read()
{
cout << "Vvedite znachenie storoni: ";
cin >> a;
}
 
double Square :: Surface (double a)
{
return a*a;
}
 
double Square :: Volume (double a)
{
return 4*a;
}
 
void Square :: Print()
{
cout << "Square \n";
cout << "P = " << Volume(a);
cout << "\nS = " << Surface(a);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int menu;
    while (true)
    {
        cout << "\nViberite figuru:\nEllips - 1\nTrapecia - 2\nKvadrat - 3\nExit - 0: ";
        cin >> menu;
        if (menu == 1)
        {
        Ellips obj1;
        obj1.Read();
        obj1.Print();
        }
        if (menu == 2)
        {
        Trapecia obj2;
        obj2.Read();
        obj2.Print();
        }
        if (menu == 3)
        {
        Square obj3;
        obj3.Read();
        obj3.Print();
        }
        else if (menu == 0)
            break;
    }
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2013, 19:34
Ответы с готовыми решениями:

Ошибка при компилировании
Вот такая ошибка &quot;Unhandled exception at 0x1027d340 (msvcr100d.dll) in 546456.exe: 0xC0000005:...

ошибка при компилировании
уже не знаю че делать .. написал программу для класса полиномов -выводит все время эту ошибку error...

Ошибка при компилировании
Здравствуйте. У меня ошибка при компилировании кода в VS2017 и мне не понятно как её устранить,...

Ошибка при компилировании
Добрый день, не компилится код, ошибки следующие: In function 'int main(int, char**)': 'cout'...

1
501 / 350 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
20.05.2013, 19:41 2
C++
1
2
   double Volume (double _a, double _b, double _c, double _d);
    double Surface(double _a, double _b, double _h); // В случае ошибки - смотри здесь, и удали из периметра h
Код не Ваш и Вы даже не удосужились прочитать что Вам пишут.

п.с. Почитайте про наследование. Виртуальные функции и чисто виртуальные функции. А также это
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
while (true)
    {
        cout << "\nViberite figuru:\nEllips - 1\nTrapecia - 2\nKvadrat - 3\nExit - 0: ";
        cin >> menu;
        if (menu == 1)
        {
        Ellips obj1;
        obj1.Read();
        obj1.Print();
        }
        if (menu == 2)
        {
        Trapecia obj2;
        obj2.Read();
        obj2.Print();
        }
        if (menu == 3)
        {
        Square obj3;
        obj3.Read();
        obj3.Print();
        }
        else if (menu == 0)
            break;
    }
Вы должны переписать с использованием абстрактного класса. Иначе Ваш труд сводиться в 0.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2013, 19:41

Ошибка при компилировании
Приветствую, скачал visual studio 2010 профессиональную, создал проект win32 с кодом окна апи,...

Ошибка при компилировании
При компилировании любого кода всегда эта ошибка: c:\program files\microsoft visual studio...

Ошибка при компилировании
Условие задачи: Разработать программу “Выравнивание”. Исходная информация представляет собой...

Ошибка при компилировании Hello world
Здравствуйте.Помогите пожалуйста.Установил Visual Studio C++.Вбил Hello World,а он почему то выдает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.