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

Не получается создать экземпляр абстрактного класса - C++

Восстановить пароль Регистрация
 
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
28.12.2013, 17:54     Не получается создать экземпляр абстрактного класса #1
в общем я очень тупой, буду благодарен за умные советы, имеется класс object и наследуемые от него triangle и uravn вот фрагмент из мэйна
C++
1
2
3
4
5
6
7
8
9
object** A;
A= new object*[N];
for(int i=0;i<100;i++)
{if(G[i]==':')
{
if(G[i-1]=='1') *(A+y)=new triangle;
if(G[i-1]=='2') *(A+y)=new uravn;
y=y+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
class object
{public:
pset K[4];
virtual void input()=0;
virtual void output()=0;
virtual float S()=0;
 
};
class uravn: public object
{public:
 
void input(int r)
{
char G[100];
FILE* F;
F=fopen("in.txt","rt");
fgets(G,sizeof(G),F);
K[0].x=G[r+2];
K[0].y=G[r+4];
K[0].z=G[r+6];
K[1].x=G[r+10];
K[1].y=G[r+12];
K[1].z=G[r+14];
}
 
void output()
{for(int i=0;i<2;i++)
{cout<<"koefficienty "<<i+1<<" uravneniya \n";
//K[i].output();
}
}
float S()
{if(K[1].x*K[2].y!=K[1].y*K[2].x) return ((K[2].z*K[1].y-K[1].z*K[2].y)/(K[1].x*K[2].y-K[2].x*K[1].y))+((K[1].x*K[2].z-K[1].z*K[2].x)/(K[1].y*K[2].x-K[1].x*K[2].y));   //x+y
else return 666;
}
};
class triangle: public object
{public:
 
void input(int r)
{char G[100];
FILE* F;
F=fopen("in.txt","rt");
fgets(G,sizeof(G),F);
K[0].x=G[r+2];
K[0].y=G[r+4];
K[0].z=G[r+6];
K[1].x=G[r+10];
K[1].y=G[r+12];
K[1].z=G[r+14];
K[2].x=G[r+18];
K[2].y=G[r+20];
K[2].z=G[r+22];
K[3].x=G[r+26];
K[3].y=G[r+28];
K[3].z=G[r+30];
}
 
void output()
{for(int i=0;i<4;i++)
{cout<<"koordinaty "<<i+1<<" vershiny tetraedra \n";
K[i].output();
}
}
float S()
{
pset AB;
pset AC;
pset AD;
AB.x=K[2].x-K[1].x;
AB.y=K[2].y-K[1].y;
AB.z=K[2].z-K[1].z;  
AC.x=K[3].x-K[1].x;
AC.y=K[3].y-K[1].y;
AC.z=K[3].z-K[1].z;
AD.x=K[4].x-K[1].x;
AD.y=K[4].y-K[1].y;
AD.z=K[4].z-K[1].z; 
return (AC.x*(AD.y*AB.z-AD.z*AB.y)+AC.y*(AD.z*AB.x-AD.x*AB.z)+AC.z*(AD.x*AB.y-AD.y*AB.x))/6; //должен возвращать объем тетраедра
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2013, 17:54     Не получается создать экземпляр абстрактного класса
Посмотрите здесь:

C++ Невозможно создать экземпляр абстрактного класса. :)
как исправить Ошибка 8 error C2259: Tabl: невозможно создать экземпляр абстрактного класса C++
C++ error C2259: number_of_plants: невозможно создать экземпляр абстрактного класса
C++ error C2259: last: невозможно создать экземпляр абстрактного класса
Не могу создать дочку абстрактного класса C++
C++ Не получается создать объект унаследованный от абстрактного класса
C++ Невозможно создать экземпляр абстрактного класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
28.12.2013, 17:57     Не получается создать экземпляр абстрактного класса #2
Экземпляр абстрактного класса создать нельзя, лишь указатель на него.

Если что, код не стал оценивать, потому как форматирование - вырвиглаз, да и ни черта не понятно, что должно что делать. Ни названий информативных, ни комментария хотя бы в два словечка.

не с глаголами пишется раздельно!
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
28.12.2013, 18:02  [ТС]     Не получается создать экземпляр абстрактного класса #3
а вот, все, разобрался, у меня был абстрактный класс object и два наследуемых uravn и triangle, проблема была в том что не написал параметры к функции input в абстрактном классе, а в других написал, спасибо большое еще раз)
Yandex
Объявления
28.12.2013, 18:02     Не получается создать экземпляр абстрактного класса
Ответ Создать тему
Опции темы

Текущее время: 12:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru