С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
#1

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

08.08.2013, 00:45. Просмотров 364. Ответов 7
Метки нет (Все метки)

Закомментированная строка не работает.
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() {}
};
Как-то не красиво получается...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2013, 00:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование типов в наследниках (C++):

Преобразование типов - C++
С учебника переписал код на применение структур, но возникла проблема с преобразованием типов. Вот код проги: #include "stdafx.h" ...

Преобразование типов - C++
кое-что о преобразовании типов. float F; __int32 DW; DW=*(__int32 *)&F; значение DW должно совпадать с F побитово, без всяких...

Преобразование типов - C++
Возможно ли преобразовать vector <Transport_Vehicle*> Cars_for_transportation в vector <MotorCar*> Cars_for_transportation

Преобразование типов - C++
Вопрос по преобразованию строки в число , и наоборот . Например на форме расположен MaskedTextBox , Button и Label . Как при нажатии на...

Преобразование типов - C++
Подскажите пожалуйста. Есть класс для работы со строками class String // Объявление строкового класса { private:...

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

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

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

Не по теме:

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

0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.08.2013, 00:54 #5
Цитата Сообщение от loou Посмотреть сообщение
Чтобы уметь преобразовывать как B в C так и C в B.
да это понятно, но
Цитата Сообщение от loou Посмотреть сообщение
Обязательно нужно в class C писать оператор преобразования типов?
если вам нужно - делайте, нет - нет
0
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); // работает
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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) {}
1
loou
1 / 1 / 0
Регистрация: 02.08.2013
Сообщений: 29
08.08.2013, 09:27  [ТС] #8
Так изначально и было. Не работает - ругается на 7 строку.

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

Добавлено через 6 минут
Спасибо не додумался, что клас объявить можно только названием.
0
08.08.2013, 09:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2013, 09:27
Привет! Вот еще темы с ответами:

преобразование типов - C++
Visual c++ 2008 (win 7 64bit) консолька char VolumeNameBuffer; char FileSystemNameBuffer; unsigned long VolumeSerialNumber; ...

Преобразование типов - C++
Как преобразовать char * в float?

Преобразование типов - C++
Как преобразовать массив char message в строку char *strmessage ?????

преобразование типов - C++
Уважаемые специалисты, у меня имеется одна проблема. Есть два числа. double и float. Надо из double вычесть float. Все бы хорошо, но...


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

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

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