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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MalachorNix
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 7
#1

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

20.05.2013, 19:34. Просмотров 241. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2013, 19:34     Ошибка при компилировании
Посмотрите здесь:

Ошибка при компилировании - C++
При компилировании любого кода всегда эта ошибка: c:\program files\microsoft visual studio 8\vc\include\string(3) : fatal error C1014:...

ошибка при компилировании - C++
уже не знаю че делать .. написал программу для класса полиномов -выводит все время эту ошибку error C2108: subscript is not of integral...

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

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

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

Ошибка при компилировании. Язык Си - C++
Всем здравствуйте. Пишу следующую программу: дан массив из 15 элементов. Найти 3 самых больших элемента массива, являющиеся простыми...

Ошибка при компилировании на XCode - C++
всем привет, начну с того что я только новичок в с/c++ ну так вот появилась у меня проблема одна, вся суть проблемы заключается в том что...

ошибка при компилировании, что она означает? - C++
работаю в Sublime text 2. При запуске в консоли всплывает следующее: Running g++ F:\учусь программировать\урок 1\ех1.cpp -o F:\учусь...

При компилировании выдается ошибка 'float fraction::numerator' is private - C++
При попытке скомпилировать код выдает 'float fraction::numerator' is private| То есть при перемещении float numerator; и float...

Ошибки при компилировании - C++
ребята, подскажите что за чепуха


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
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.
Yandex
Объявления
20.05.2013, 19:41     Ошибка при компилировании
Ответ Создать тему
Опции темы

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