Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
1

Программа (class Complex) на неуправляемом языке c++

08.04.2014, 00:02. Показов 1961. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал программу. Заголовочный файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Complex
{
private:
    double x, y;
public:
    Complex();
    Complex(double, double);
    Complex(Complex &);
    void assign(Complex&);
    friend void print(Complex&);
    friend Complex plus(Complex&, Complex&);
};
Файл программы
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>
#include <conio.h>
#include "1.h"
using namespace std;
Complex::Complex() :x(0.0), y(0.0)
{}
Complex::Complex(double x1, double y1) : x(x1), y(y1)
{}
 
Complex::Complex(Complex &temp_obj)
{
    x = temp_obj.x;
    y = temp_obj.y;
}
 
Complex plus(Complex &c1, Complex &c2)
{
    double x_temp, y_temp;
    x_temp = c1.x + c2.x;
    y_temp = c1.y + c2.y;
    return Complex(x_temp, y_temp);
}
 
void Complex::assign(Complex &c1_res)
{
    x = c1_res.x;
    y = c1_res.y;
}
 
void print(Complex &c1_show)
{
    cout << "x=" << c1_show.x << endl << "y=" << c1_show.y << endl;
}
 
 
int main()
{
    setlocale(0, "Rus");
 
    Complex x(1.3, 4.2), y(4.0, 8.1), z(y);
    z.assign(plus(x, y));
    print(plus(y, z));
 
    getch();
    return 0;
}
При компиляции в VS 2013 выдает ошибку - error C2872: plus: неоднозначный символ и указывает на строчки
C++
1
2
z.assign(plus(x, y));
    print(plus(y, z));
Читал документацию, но так и не понял что ему не нравится...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2014, 00:02
Ответы с готовыми решениями:

Class Complex
Товарищи Программисты, проблема более теоритического характера, чем практического. А проблема в...

Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)'
Есть такой файл complex.h #ifndef COMPLEX_H #define COMPLEX_H template&lt;class Type&gt; class...

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int')
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i !=...

bad class file: C:Program FilesJavajre1.5.0_02lib t.jar(java/lang/Object.class) class file has wrong version 49.0, should be 48.0
написал тестовый td_jsp.jsp фаил -&gt;&gt; &lt;html&gt; &lt;head&gt;&lt;title&gt;JSP test&lt;/title&gt;&lt;/head&gt; ...

17
13 / 9 / 5
Регистрация: 30.01.2014
Сообщений: 47
08.04.2014, 00:08 2
Скорее всего этот идентификатор ещё где-то используется, попробуйте переименовать или оберните в namespace свой код
0
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 00:11  [ТС] 3
rcyn, вроде бы нигде не использовал больше... А как обернуть в namespace?
0
18894 / 9852 / 2410
Регистрация: 30.01.2014
Сообщений: 17,295
08.04.2014, 00:16 4
tyna, using namespace std; просто не надо использовать бездумно
1
13 / 9 / 5
Регистрация: 30.01.2014
Сообщений: 47
08.04.2014, 00:20 5
Цитата Сообщение от tyna Посмотреть сообщение
rcyn, вроде бы нигде не использовал больше... А как обернуть в namespace?

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
namespace MyNameSpace
{
   class Test 
   { 
   public:
      Test(int value):m_val(value){}
      friend Test plus(const Test & t1, const Test & t2);
      friend void print(const Test & t);
   private:
      int m_val;
      
   };
 
   Test plus(const Test & t1, const Test & t2)
   {
      return Test(t1.m_val + t2.m_val);
   }
 
   void print(const Test & t)
   {
      cout << t.m_val << endl;
   }
}
 
int main()
{
   
   MyNameSpace::Test t1(100);
   MyNameSpace::Test t2(200);
   MyNameSpace::print(MyNameSpace::plus(t1,t2));
 
return 0;
}
1
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 00:28  [ТС] 6
спасибо) а вот хотел узнать, как эту программу разбить на 3 файла?

Добавлено через 3 минуты
DrOffset, а если не используя его?
0
18894 / 9852 / 2410
Регистрация: 30.01.2014
Сообщений: 17,295
08.04.2014, 00:46 7
Цитата Сообщение от tyna Посмотреть сообщение
а если не используя его?
В смысле? plus - определен в пространстве имен std, из-за этого конфликт и ошибка. Не нужно импортировать все пространство имен, если оно не надо.
1
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 06:19  [ТС] 8
DrOffset, а как реализовать, чтобы не все пространство имен использовать тогда?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2014, 07:01 9
Цитата Сообщение от tyna Посмотреть сообщение
а вот хотел узнать, как эту программу разбить на 3 файла?
Реализации функций перенесите в другой .cpp файл.

Добавлено через 4 минуты
Цитата Сообщение от tyna Посмотреть сообщение
а как реализовать, чтобы не все пространство имен использовать тогда?
Директиву using namespace std не использовать, а где нужно испльзовать std::, или using std::.
2
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 21:51  [ТС] 10
alsav22, я пробовал переносил
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    setlocale(0, "Rus");
 
    Complex x(1.3, 4.2), y(4.0, 8.1), z(y);
    z.assign(plus(x, y));
    print(plus(y, z));
 
    getch();
    return 0;
}
в другой cpp файл. Но выдало много ошибок. Или как перенести функции?
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2014, 22:05 11
Цитата Сообщение от tyna Посмотреть сообщение
я пробовал переносил
Покажите как перенесли, мне же не видно.
Цитата Сообщение от tyna Посмотреть сообщение
Но выдало много ошибок.
Каких?
0
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 22:31  [ТС] 12
alsav22, так и перенес просто, как и написал (только функцию main) и пишет что x,y,z неопознаны
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2014, 22:35 13
Цитата Сообщение от tyna Посмотреть сообщение
так и перенес просто, как и написал
Как написали - вижу, как перенесли - не вижу.
Содержимое файлов покажите.
0
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 22:38  [ТС] 14
alsav22, я просто из первого файла cpp вырезал часть с main и во второй срр вставил

Добавлено через 29 секунд
alsav22, и не знаю что еще во втором дописать надо
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2014, 22:39 15
Цитата Сообщение от tyna Посмотреть сообщение
я просто из первого файла cpp вырезал часть с main и во второй срр вставил
Будем файлы показывать, или будем переписку заканчивать?
0
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 22:40  [ТС] 16
первый файл
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
#include <iostream>
#include <conio.h>
#include "1.h"
using namespace std;
Complex::Complex() :x(0.0), y(0.0)
{}
Complex::Complex(double x1, double y1) : x(x1), y(y1)
{}
 
Complex::Complex(Complex &temp_obj)
{
    x = temp_obj.x;
    y = temp_obj.y;
}
 
Complex plus(Complex &c1, Complex &c2)
{
    double x_temp, y_temp;
    x_temp = c1.x + c2.x;
    y_temp = c1.y + c2.y;
    return Complex(x_temp, y_temp);
}
 
void Complex::assign(Complex &c1_res)
{
    x = c1_res.x;
    y = c1_res.y;
}
 
void print(Complex &c1_show)
{
    cout << "x=" << c1_show.x << endl << "y=" << c1_show.y << endl;
}
второй файл
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    setlocale(0, "Rus");
 
    Complex x(1.3, 4.2), y(4.0, 8.1), z(y);
    z.assign(plus(x, y));
    print(plus(y, z));
 
    getch();
    return 0;
}
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2014, 22:48 17
Цитата Сообщение от tyna Посмотреть сообщение
второй файл
А третий где?
Во втором сделать:
C++
1
#include "1.h"
1
2 / 2 / 0
Регистрация: 28.11.2013
Сообщений: 79
08.04.2014, 22:55  [ТС] 18
alsav22, третий заголовочный .h
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Complex
{
private:
    double x, y;
public:
    Complex();
    Complex(double, double);
    Complex(Complex &);
    void assign(Complex&);
    friend void print(Complex&);
    friend Complex plus(Complex&, Complex&);
};
0
08.04.2014, 22:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2014, 22:55
Помогаю со студенческими работами здесь

Подключение DLL на неуправляемом коде
Объясните, что я делаю не так? Вот у меня есть DLL файл написанный на C++ #if defined(__DLL__) ...

Объекты формы в неуправляемом приложении
Хочу спросить такую вещь - можно ли как-то обратиться к объекту формы документа при работе с...

Управляемый += gcnew в неуправляемом коде
Добрый день! Пишу класс таймер и для него использую System::Windows::Forms::Timer, который...

Управляемый элемент (код) в неуправляемом классе
Добрый день, глупый вопрос, но все же хотел спросить для уточнения, можно ли использовать...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru