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

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

Восстановить пароль Регистрация
 
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
08.08.2013, 00:45     Преобразование типов в наследниках #1
Закомментированная строка не работает.
C++
1
2
3
4
5
6
7
8
9
10
11
class A {  };
 
class B : public A {
public:
    //B(C & varC) {}
};
 
class C : public A {
public:
    C(B & varB) {}
};
Обязательно нужно в class C писать оператор преобразования типов?
C++
1
2
3
4
5
class C : public A {
public:
    C(B & varB) {}
    operator B() {}
};
Как-то не красиво получается...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 00:45     Преобразование типов в наследниках
Посмотрите здесь:

C++ преобразование типов
Преобразование типов C++
Преобразование типов C++
C++ С++ преобразование типов
C++ преобразование типов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.08.2013, 00:49     Преобразование типов в наследниках #2
Цитата Сообщение от loou Посмотреть сообщение
Обязательно нужно в class C писать оператор преобразования типов?
зачем?

Добавлено через 1 минуту
Цитата Сообщение от loou Посмотреть сообщение
Закомментированная строка не работает.
потому что про класс С в этом месте компилятор ни сном ни духом
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
08.08.2013, 00:51  [ТС]     Преобразование типов в наследниках #3
Чтобы уметь преобразовывать как B в C так и C в B.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11805 / 6784 / 767
Регистрация: 27.09.2012
Сообщений: 16,839
Записей в блоге: 2
Завершенные тесты: 1
08.08.2013, 00:54     Преобразование типов в наследниках #4
Цитата Сообщение от loou Посмотреть сообщение
Чтобы уметь преобразовывать как B в C так и C в B.
Зачем вдруг понадобилась такая функциональность (преобразование между классами-братьями)?

Не по теме:

преобразуем кошку в собаку! Генная инженерия к этому еще не готова.

Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.08.2013, 00:54     Преобразование типов в наследниках #5
Цитата Сообщение от loou Посмотреть сообщение
Чтобы уметь преобразовывать как B в C так и C в B.
да это понятно, но
Цитата Сообщение от loou Посмотреть сообщение
Обязательно нужно в class C писать оператор преобразования типов?
если вам нужно - делайте, нет - нет
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
08.08.2013, 01:18  [ТС]     Преобразование типов в наследниках #6
Цитата Сообщение от Jupiter Посмотреть сообщение
да это понятно, но

если вам нужно - делайте, нет - нет
да, но ведь
C++
1
2
3
4
5
B bb;
C cc;
 
C ccc(bb); // не работает!!!
B bbb(cc); // работает
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
08.08.2013, 01:27     Преобразование типов в наследниках #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A {  };
 
class C;
 
class B : public A {
public:
    B(C & varC);
};
 
class C : public A {
public:
    C(B & varB) {}
};
 
B::B(C & varC) {}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2013, 09:27     Преобразование типов в наследниках
Еще ссылки по теме:

Преобразование типов C++
Преобразование типов C++
C++ Преобразование типов

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

Или воспользуйтесь поиском по форуму:
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
08.08.2013, 09:27  [ТС]     Преобразование типов в наследниках #8
Так изначально и было. Не работает - ругается на 7 строку.

Извиняюсь, объявления C не заметил...

Добавлено через 6 минут
Спасибо не додумался, что клас объявить можно только названием.
Yandex
Объявления
08.08.2013, 09:27     Преобразование типов в наследниках
Ответ Создать тему
Опции темы

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