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

Приведение типов - C++

Восстановить пароль Регистрация
 
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
19.12.2010, 00:44     Приведение типов #1
Доброго времени суток. Есть вопрос. Допустим:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Base {
.....
}
class Derived:public Base{
....
}
 
int main (){
 
Base B, *sB;
Derived D, *sD;
 
 
sB = &D; //так можно
sB = (Base *) D;// так можно
(Derived)sB = D;// и так можно
sD = &B; // а так нельзя (указателю на производный класс нельзя присвоить обьект базового класса)
 
}
Вопрос: возможно ли присваивание с приведением типов, как показано ниже ???

B = (B)D; //????????????
D= (D)B; //????????????
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2010, 00:44     Приведение типов
Посмотрите здесь:

C++ Приведение типов
Приведение типов. C++
C++ Приведение типов.
C++ Приведение типов
Приведение типов C++
C++ Приведение типов
Приведение типов C++
Приведение типов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
19.12.2010, 01:56     Приведение типов #2
D= (D)B
Для этого присваивания можно определить оператор присваивания
Drerived::operator=(const Base&)
romedal
 Аватар для romedal
53 / 53 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
19.12.2010, 02:04  [ТС]     Приведение типов #3
А если не определять, предусмотрено ли автоматическое приведение типа для D = (D)B; и как насчёт В = (B)D ?
Yandex
Объявления
19.12.2010, 02:04     Приведение типов
Ответ Создать тему
Опции темы

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