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

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

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

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

28.12.2013, 17:54. Просмотров 353. Ответов 2
Метки нет (Все метки)

в общем я очень тупой, буду благодарен за умные советы, имеется класс 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++):

Невозможно создать экземпляр абстрактного класса - C++
work.cpp #include &quot;student.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;windows.h&gt; #include...

Невозможно создать экземпляр абстрактного класса. :) - C++
Делаю курсовик, сейчас на начальной стадии (а как же еще к концу сессии :D). Код, который я сейчас покажу еще &quot;сырой&quot;, а точнее нарезка из...

error C2259: last: невозможно создать экземпляр абстрактного класса - C++
Только начала изучать абстрактные классы, и сразу же проблемы. error C2259: last: невозможно создать экземпляр абстрактного класса. Не знаю...

error C2259: number_of_plants: невозможно создать экземпляр абстрактного класса - C++
error C2259: number_of_plants: невозможно создать экземпляр абстрактного класса Пожалуйста, помогите main #include &quot;flower.h&quot; ...

как исправить Ошибка 8 error C2259: Tabl: невозможно создать экземпляр абстрактного класса - C++
имеется абстрактный класс, у нее есть 4 виртуальных функций: запись и чтение с помощью С и С++ имеется класс Tabl производный от...

Не получается создать объект унаследованный от абстрактного класса - C++
Здравствуйте! Нужна помощь с виртуальными функциями, в теории понимаю что это, а вот с реализацией что-то совсем не получается. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7209 / 4375 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
28.12.2013, 17:57 #2
Экземпляр абстрактного класса создать нельзя, лишь указатель на него.

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

не с глаголами пишется раздельно!
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
28.12.2013, 18:02  [ТС] #3
а вот, все, разобрался, у меня был абстрактный класс object и два наследуемых uravn и triangle, проблема была в том что не написал параметры к функции input в абстрактном классе, а в других написал, спасибо большое еще раз)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2013, 18:02
Привет! Вот еще темы с ответами:

Не могу создать дочку абстрактного класса - C++
Следующий код на MS Visual C++ 2010 даёт ошибку error C2259: 'IntValue' : cannot instantiate abstract class: #include &lt;iostream&gt; ...

Создать экземпляр класса без явного указания членов класса - C++
Если у меня есть два конструктора, один из которых по умолчанию, а второй явный. Я почему-то не могу создать экземпляр класса без явного...

Создать новый объект-наследник абстрактного класса - C++
Приветствую, друзья! У нас есть абстрактный класс AbstractClass и его наследники child1 и child2. В массиве у нас есть несколько...

Ошибка: невозможно создать объект абстрактного класса - C++
программа для заменны слова в файле, на введенное с клавы слово!реализовать нужно через интерфейс! ошибка в строчке Text edit; не...


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

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

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