Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 20
1

Реализация классов чисел

17.10.2012, 16:41. Просмотров 549. Ответов 6
Метки нет (Все метки)

есть задача по реализации 2 классов действительно и комплексного числа, при дебаги возникают непонятные мне ошибки хелп.
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
# include <iostream>
using namespace std;
 
class realNumber {
public: 
int number;
double method_add (realNumber &a)
{
cout<<(this->number+a.number)<<endl;
}
double method_add1 (complexNumber &b)
{
cout<<(this->number+b.x)<<"+"<<b.y<<"i"<<endl;
}
double method_sub (realNumber &a)
{
cout<<(this->number-a.number)<<endl;
}
double method_sub1 (complexNumber &b)
{
    cout<<(this->number-b.x)<<"+"<<b.y<<"i"<<endl;
}
};
 
class complexNumber {
public:
double x;// действительная часть
double y;// мнимая часть 
double method_add2 (complexNumber &b)
{
cout<<this->x+b.x<<"+"<<(this->y+b.y)<<"i"<<endl;
}
double method_add3 (realNumber &a)
{
cout<<(a.number+this->x)<<"+"<<this->y<<"i"<<endl;
}
 
double method_sub2 (complexNumber &b)
{
cout<<(this->x-b.x)<<"+"<<(this->y-b.y)<<"i"<<endl;
}
double method_sub3 (realNumber &a)
{
cout<<(this->x-a.number)<<"+"<<this->y<<"i"<<endl;
}
};
вот выводимые ошибки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1>------ Build started: Project: cisla, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(11) : error C2061: syntax error : identifier 'complexNumber'
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(19) : error C2061: syntax error : identifier 'complexNumber'
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(13) : error C2065: 'b' : undeclared identifier
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(13) : error C2228: left of '.x' must have class/struct/union
1>        type is ''unknown-type''
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(13) : error C2065: 'b' : undeclared identifier
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(13) : error C2228: left of '.y' must have class/struct/union
1>        type is ''unknown-type''
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(21) : error C2065: 'b' : undeclared identifier
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(21) : error C2228: left of '.x' must have class/struct/union
1>        type is ''unknown-type''
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(21) : error C2065: 'b' : undeclared identifier
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(21) : error C2228: left of '.y' must have class/struct/union
1>        type is ''unknown-type''
1>Build log was saved at "file://c:\Users\10588\Documents\Visual Studio 2008\Projects\cisla\cisla\Debug\BuildLog.htm"
1>cisla - 10 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2012, 16:41
Ответы с готовыми решениями:

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных классов. Как...

Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс
Доброго времени суток! Осваивая UML, решил реализовать отношение двунаправленной ассоциации по...

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

Реализация классов
Помогите, пожалуйста, с 2-мя заданиями! 1) class A { public: A(); ~A(); private: D...

6
Эксперт по пяченькам
67 / 67 / 12
Регистрация: 16.08.2011
Сообщений: 249
17.10.2012, 17:06 2
Объяви класс ComplexNumber перед RealNumber:
C++
1
2
3
4
5
6
...
class complexNumber;
 
class realNumber
{
...
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 20
17.10.2012, 17:30  [ТС] 3
не помогло
0
595 / 563 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
17.10.2012, 17:37 4

Не по теме:

стоит перевести ошибки компилятора



Добавлено через 3 минуты
Цитата Сообщение от Vevern Посмотреть сообщение
не помогло
вы что-то не так делаете нету никаких ошибок
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
#include <iostream>
#include <string>
 
using namespace std;
 
class complexNumber;
 
class realNumber {
public: 
int number;
double method_add (realNumber &a)
{
cout<<(this->number+a.number)<<endl;
}
double method_add1 (complexNumber &b)
{
cout<<(this->number+b.x)<<"+"<<b.y<<"i"<<endl;
}
double method_sub (realNumber &a)
{
cout<<(this->number-a.number)<<endl;
}
double method_sub1 (complexNumber &b)
{
    cout<<(this->number-b.x)<<"+"<<b.y<<"i"<<endl;
}
};
 
class complexNumber {
public:
double x;// действительная часть
double y;// мнимая часть 
double method_add2 (complexNumber &b)
{
cout<<this->x+b.x<<"+"<<(this->y+b.y)<<"i"<<endl;
}
double method_add3 (realNumber &a)
{
cout<<(a.number+this->x)<<"+"<<this->y<<"i"<<endl;
}
 
double method_sub2 (complexNumber &b)
{
cout<<(this->x-b.x)<<"+"<<(this->y-b.y)<<"i"<<endl;
}
double method_sub3 (realNumber &a)
{
cout<<(this->x-a.number)<<"+"<<this->y<<"i"<<endl;
}
};
0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 20
17.10.2012, 18:06  [ТС] 5

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
# include <iostream>
using namespace std;
 
class complexNumber;
 
class realNumber {
public: 
int number;
double method_add (realNumber &a)
{
cout<<(this->number+a.number)<<endl;
}
double method_add1 (complexNumber &b)
{
cout<<(this->number+b.x)<<"+"<<b.y<<"i"<<endl;
}
double method_sub (realNumber &a)
{
cout<<(this->number-a.number)<<endl;
}
double method_sub1 (complexNumber &b)
{
    cout<<(this->number-b.x)<<"+"<<b.y<<"i"<<endl;
}
};
 
class complexNumber {
public:
double x;// действительная часть
double y;// мнимая часть 
double method_add2 (complexNumber &b)
{
cout<<this->x+b.x<<"+"<<(this->y+b.y)<<"i"<<endl;
}
double method_add3 (realNumber &a)
{
cout<<(a.number+this->x)<<"+"<<this->y<<"i"<<endl;
}
 
double method_sub2 (complexNumber &b)
{
cout<<(this->x-b.x)<<"+"<<(this->y-b.y)<<"i"<<endl;
}
double method_sub3 (realNumber &a)
{
cout<<(this->x-a.number)<<"+"<<this->y<<"i"<<endl;
}
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1>------ Build started: Project: cisla, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(15) : error C2027: use of undefined type 'complexNumber'
1>        c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(4) : see declaration of 'complexNumber'
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(15) : error C2228: left of '.x' must have class/struct/union
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(15) : error C2027: use of undefined type 'complexNumber'
1>        c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(4) : see declaration of 'complexNumber'
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(15) : error C2228: left of '.y' must have class/struct/union
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(23) : error C2027: use of undefined type 'complexNumber'
1>        c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(4) : see declaration of 'complexNumber'
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(23) : error C2228: left of '.x' must have class/struct/union
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(23) : error C2027: use of undefined type 'complexNumber'
1>        c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(4) : see declaration of 'complexNumber'
1>c:\users\10588\documents\visual studio 2008\projects\cisla\cisla\class.h(23) : error C2228: left of '.y' must have class/struct/union
1>Build log was saved at "file://c:\Users\10588\Documents\Visual Studio 2008\Projects\cisla\cisla\Debug\BuildLog.htm"
1>cisla - 8 error(s), 0 warning(s)
0
Эксперт по пяченькам
67 / 67 / 12
Регистрация: 16.08.2011
Сообщений: 249
17.10.2012, 18:22 6
У меня такое ощущение, что здесь возникает необходимость объявлять классы в .h-файле, а определять в .cpp-файле. Судя по ошибкам, до определения класса realNumber, желательно не просто получить наименование класса complexNumber, но и знать наименование публичных полей и методов
0
44 / 44 / 14
Регистрация: 27.04.2011
Сообщений: 163
17.10.2012, 18:48 7
Цитата Сообщение от StasGamilton Посмотреть сообщение
У меня такое ощущение, что здесь возникает необходимость объявлять классы в .h-файле, а определять в .cpp-файле. Судя по ошибкам, до определения класса realNumber, желательно не просто получить наименование класса complexNumber, но и знать наименование публичных полей и методов
мне тоже так кажется, к тому же в объявлениях функций возвращаемый тип указан как double,но они ничего не возвращают
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.10.2012, 18:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Реализация собственных классов
Разработать прогнрамму, демонстрирующую работу с объектами 2х типов: Triangle(треугольник) и...

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

Реализация классов integer, double
Есть задания реализовать класс integer,double,char производные от абстрактного класса Number....

Реализация классов вектор и строка
Для лабораторной работы нужно было написать свою реализацию классов вектор и строка. Выкладываю...

ООП реализация сложных классов
Вот задание как реализуется сложный класс“база-сектор” (дуга+радиус+радиус) , в которых...

Реализация программы с помощью классов
Здравствуйте, коллеги-программеры! Обращаюсь к Вам с таким вопросом. У меня есть написанная мной...


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

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

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