|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.11.2007, 20:48 | #1 |
Регистрация: 30.11.2007
Сообщений: 4
|
базовые и производные классы (В чём моя ошибка)
Помогите разобраться. Я прогаю в среде BuilderC++ 6.0. Я определил класс и структуру, причем в структуре сылаюсь на мой базовый класс. Компьютер выдвает ощибку: "[C++ Error] Unit1.cpp(79): E2125 Compiler could not generate default constructor for class 'Particle'
". Я хочу создать структуру имеющее 2 поля типа класса VectorD3D. Ниже данн код (Заранее спасибо за помощь): class VectorD3D { double x;double y; double z; public: VectorD3D(double xx,double xy, double xz):x(xx),y(xy),z(xz){real =xx;}; double &x1(void){return real;}; double &x2(void){return y;}; double &x3(void){return z;}; double abs(void){return (sqrt(x*x+y*y+z*z));}; static VectorD3D *last; //Адрес последнего элемента списка: VectorD3D *prev; // На предыдущий элемент списка VectorD3D *next; // На следующий элемент списка friend VectorD3D operator<< (VectorD3D a,VectorD3D b){VectorD3D *xx;xx=new VectorD3D(b.x1(),b.x2(),b.x3());xx->next=a.next;xx->prev=a.prev;return *xx;}; friend VectorD3D operator| (VectorD3D a,VectorD3D b){VectorD3D *xx;xx=new VectorD3D(0,0,0);xx->x1()=a.x1()*b.x1();xx->x2()=a.x2()*b.x2();xx->x3()=a.x3()*b.x3();return *xx;}; friend VectorD3D operator*(double l,VectorD3D a){a.x1()=l*a.x1();a.x2()=l*a.x2(); a.x3()=l*a.x3();return a;} friend VectorD3D operator*(VectorD3D a,double l){a.x1()=a.x1()*l;a.x2()=a.x2()*l; a.x3()=a.x3()*l;return a;/ } friend VectorD3D operator/(VectorD3D a,double l){a.x1()=a.x1()/l;a.x2()=a.x2()/l;a.x3()=a.x3()/l;return a;} friend VectorD3D operator+(VectorD3D a,VectorD3D b){a.x1()=a.x1()+b.x1();a.x2()=a.x2 ()+b.x2();a.x3()=a.x3()+b.x3();retu rn a;} friend VectorD3D operator-(VectorD3D a,VectorD3D b){a.x1()=a.x1()-b.x1();a.x2()=a.x2()-b.x2();a.x3()=a.x3()-b.x3();return a; } friend double operator*(VectorD3D a,VectorD3D b){return (a.x1()*b.x1()+a.x2()*b.x2()+a.x3() *b.x3()); } private: double real; public: void add (void) ; //Добавление элемента в конец списка } ; //--------------------------------------------------------------------------- // Добавление элемента в конец списка: void VectorD3D::add(void) { if (last == NULL) {this -> prev = NULL;} else {last -> next = this; this -> prev = last; last = this; this -> next = NULL; }; }; //--------------------------------------------------------------------------- // !!Atantion!! struct Particle : public VectorD3D { public: VectorD3D P; VectorD3D X; } t1; /*!!Atantion!!*/[C++ Error] Unit1.cpp(79): E2125 Compiler could not generate default constructor for class 'Particle' |
30.11.2007, 21:41 | #2 |
Форумчанин
Регистрация: 27.12.2006
Сообщений: 955
|
ЭЭЭЭЭ да вы батенька потрудитесь код оформить как положено... А то такой код несварение вызывает и глаза разбегаються... Смотреть противно. Да и Правила Форума Вам почитать оно наверное не вредно будет !!!
|
30.11.2007, 22:11 | #3 |
Регистрация: 30.11.2007
Сообщений: 4
|
Помогите разобраться. Я прогаю в среде BuilderC++ 6.0. Я определил класс и структуру, причем в структуре сылаюсь на мой базовый класс. Компьютер выдвает ощибку: "[C++ Error] Unit1.cpp(79): E2125 Compiler could not generate default constructor for class 'Particle'
". Я хочу создать структуру имеющее 2 поля типа класса VectorD3D. Ниже данн код (Заранее спасибо за помощь): class VectorD3D { double x;double y; double z; public: VectorD3D(double xx,double xy, double xz):x(xx),y(xy),z(xz){}; double &x1(void){return x;}; double &x2(void){return y;}; double &x3(void){return z;}; double abs(void){return (sqrt(x*x+y*y+z*z));}; static VectorD3D *last; //Адрес последнего элемента списка: VectorD3D *prev; // На предыдущий элемент списка VectorD3D *next; // На следующий элемент списка } ; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- struct Particle : public VectorD3D { public: VectorD3D P; VectorD3D X; } t1; /*!!Atantion!!*/ [C++ Error] Unit1.cpp(79): E2125 Compiler could not generate default constructor for class 'Particle' |
30.11.2007, 22:13 | #4 |
Регистрация: 30.11.2007
Сообщений: 4
|
Это текст с преоформленым кодом, выполненный по просбе merax. NB!Ошибка, при этом, та же.
|
01.12.2007, 16:33 | #5 |
Форумчанин
Регистрация: 25.09.2007
Сообщений: 189
|
у тебя 1 конструтор
Код:
Код:
напиши так Код:
Код:
|
01.12.2007, 17:26 | #6 |
Регистрация: 30.11.2007
Сообщений: 4
|
Спасибо!! Очень признателен за информативный ответ.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Классы в php | Romanbl4 | PHP | 3 | 08.08.2008 07:09 |
Классы | Старовъръ | Общие вопросы Delphi | 4 | 26.06.2008 17:00 |
С++ Производные классы (Ошибка) | Sweta | Помощь студентам | 9 | 23.04.2008 12:58 |
Классы | Mickle | Общие вопросы Delphi | 1 | 07.05.2007 12:16 |