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

Преобразование пользовательских классов - C++

Восстановить пароль Регистрация
 
kalpakk
 Аватар для kalpakk
13 / 13 / 1
Регистрация: 02.07.2011
Сообщений: 62
18.05.2013, 07:06     Преобразование пользовательских классов #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
class Int;
 
class Compl
   {
         float real;
         float image;
      public:
         friend class Int;
         Compl():real(0),image(0){};
       // Compl(Int i):real(i.In),image(0){};
         Compl(int r):real(r),image(0){};
         Compl(int r, int i):real(r),image(i){};
         Compl(float r):real(r),image(0){};
         Compl(float r,float i):real(r),image(i){};
         operator double () const { return (real); };
         operator float () const { return real; };
         operator int () const { return (real); };
        // operator Int () const { return Int(real); };
 
   };
class Int
   {
         int In;
      public:
         friend class Compl;
         Int():In(0){};
         Int(int i):In(i){};
         Int(float f):In(static_cast<float>(f)){};
         Int(Compl c):In(c.real){};
         operator int () const { return In; };
         operator float () const { return static_cast<float>(In); };
         operator double () const { return static_cast<double>(In); };
         operator Compl () const { return Compl(In); };
 
   };

не могу сообразить как правильно написать переобразование класса Int в класс Compl
в строке
C++
1
2
 // Compl(Int i):real(i.In),image(0){};
 // operator Int () const { return Int(real); };
компилятор матерится
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2013, 07:06     Преобразование пользовательских классов
Посмотрите здесь:

C++ Описания членов - данных пользовательских классов
Преобразование классов C++
C++ Преобразование пользовательских типов
C++ Лафоре, преобразование классов
C++ Преобразование классов
C++ Преобразование пользовательских типов
C++ Перегрузка оператора "<<" для вывода пользовательских классов
C++ Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cyberbrain1000
 Аватар для cyberbrain1000
23 / 23 / 3
Регистрация: 15.04.2013
Сообщений: 62
18.05.2013, 09:31     Преобразование пользовательских классов #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
class Int;
 
class Compl
{
         float real;
         float image;
    public:
         friend class Int;
         Compl():real(0),image(0){};
         Compl(Int i);
         Compl(int r):real(r),image(0){};
         Compl(int r, int i):real(r),image(i){};
         Compl(float r):real(r),image(0){};
         Compl(float r,float i):real(r),image(i){};
         operator double () const { return (real); };
         operator float () const { return real; };
         operator int () const { return (real); };
         operator Int () const;
 
};
 
class Int
{
         int In;
    public:
         friend class Compl;
         Int():In(0){};
         Int(int i):In(i){};
         Int(float f):In(static_cast<float>(f)){};
         Int(Compl c):In(c.real){};
         operator int () const { return In; };
         operator float () const { return static_cast<float>(In); };
         operator double () const { return static_cast<double>(In); };
         operator Compl () const { return Compl(In); };
 
 };
 
Compl::operator Int () const { return Int(real); }
 
Compl::Compl(Int i):real(i.In),image(0){};
Yandex
Объявления
18.05.2013, 09:31     Преобразование пользовательских классов
Ответ Создать тему
Опции темы

Текущее время: 17:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru