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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rrrFer
Заблокирован
#1

Взаимное приведение типов - C++

28.08.2013, 23:19. Просмотров 304. Ответов 1
Метки нет (Все метки)

Здравствуйте.
Есть 2 класса: A, B. Для класса А нужно перегрузить оператор B(), а для класса B - оператор A().

Естественно forward declaration не помог (тип получается не полным):

говнокод:
Код
struct B;
struct A {
  int a_;
  A(int a) : a_(a) { }
  operator B() {
    return a_;
  }
};

struct B {
  int b_;
  B(int b) : b_(b*2) { }
  operator A() {
    return b_;
  }
};

int main() {
}
Скорее всего я дико туплю, но я залез в книжку Страуструпа - там код примерно такой же (он тоже пишет forward declaration в надежде что это взлетит, но код неработает - раздел "24.3.5 Отношения использования").
Больше примеров для плюсов не нашел. Прошу помощи. Заранее спасибо ).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2013, 23:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Взаимное приведение типов (C++):

Приведение типов - C++
Делаю программу, которая кроме всего прочего должна отсортировать массив. Использую для этого qsort. Вот что получилось: ...

Приведение типов? - C++
Подскажите, пожалуйста что происходит. Не понимаю почему такой код работает. .h class Km { private: static const...

Приведение типов. - C++
Доброго времени суток! В общем, есть класс Matrix(прямоугольные над полем вещ. чисел). Необходимо реализовать приведение типов Matrix...

Приведение типов - C++
Есть код вызова метода: obj.func(char a, char b) сам метод: void func(char a, char b) { int i = (int)a, int j = (int)b; В...

Приведение типов - C++
В паскале можно привести типы: type ts = 0..9; chislo = array of ts; Как это сделать на С++?

Приведение типов - C++
При вводе с клавиатуры s = 11 и a = 1.1, получаем 9. Результат переменной d = 10, это правильно. В чём подвох? int main() { ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Убежденный
Системный программист
Эксперт С++
15551 / 7059 / 1114
Регистрация: 02.05.2013
Сообщений: 11,468
Завершенные тесты: 1
28.08.2013, 23:35 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
struct B;
struct A {
  int a_;
  A(int a) : a_(a) { }
  operator B();
};
 
struct B {
  int b_;
  B(int b) : b_(b*2) { }
  operator A() {
    return b_;
  }
};
 
A::operator B()
{
    return a_;
}
 
int main() {
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2013, 23:35
Привет! Вот еще темы с ответами:

Приведение типов - C++
Как компилятор заставить адекватней приводить типы? (VS2012) Например: int a=-1; unsigned int b=5; if(a>b){...}//Условие...

Приведение типов - C++
Уважаемые программеры, ПОМОГИТЕ!!! Нужно (мне) реализовать шаблонную функцию для приведения типов. Пример: newType_cast<T>(“123”); ...

Приведение типов - C++
В чем различие привидения типа (type)expression, от type(expression)?

приведение типов - C++
Объясните, пожалуйста, почему возникает такая ошибка: error C2666: 'operator *' : 4 overloads have similar conversions ? Из-за того,...


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

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

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