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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно изменить метод ввода данных - с помощью текстового файла http://www.cyberforum.ru/cpp-beginners/thread1059490.html
Нужно изменить метод ввода данных - с помощью текстового файла #include "stdafx.h" #include <iostream> using namespace std; int main() { setlocale(LC_ALL,"Rus"); // включаем русский язык char str; // объявляем строку
C++ Необходимо изменить способ ввода данных - с помощью текстового файла Необходимо изменить способ ввода данных - с помощью текстового файла #include "stdafx.h" #include <iostream> #include <cmath> #include <conio.h> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread1059488.html
C++ Нужно изменить метод ввода данных - с помощью текстового файла
Нужно изменить способ ввода и вывода данных - с помощью текстовых файлов #include "stdafx.h" #include <iostream> #include <time.h> using namespace std; int main() { setlocale(LC_ALL, "rus"); srand(unsigned(time(0)));
Нужно изменить способ ввода данных - с помощью текстового файла C++
Нужно изменить способ ввода данных - с помощью текстового файла #include "stdafx.h" #include <iostream> #include <time.h> using namespace std; int main() { setlocale(LC_ALL, "rus"); srand(unsigned(time(0)));
C++ Для данной программы составить подпрограмму переменных в виде массивов http://www.cyberforum.ru/cpp-beginners/thread1059474.html
Помогите для данной программы составить подпрограмму переменных в виде массивов. #include <iostream> #include <math.h> using namespace std; double SquareTriangle(double a, double b, double c) { double p = (a + b + c) / 2; double S = sqrt(p * (p - a) * (p - b) * (p - c)); return S; }
C++ Программа "[4076] Rfpl.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a) // Rfpl.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <math.h> #include <iostream> #include <fstream> #include <fstream> #include <iomanip> using namespace std; подробнее

Показать сообщение отдельно
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
28.12.2013, 17:54     Не получается создать экземпляр абстрактного класса
в общем я очень тупой, буду благодарен за умные советы, имеется класс 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; //должен возвращать объем тетраедра
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru