2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Какова причина этого нехорошего поведения?
Сообщение20.11.2010, 23:08 
Заслуженный участник


27/04/09
28128
Используется синтаксис C++
class TBase { /* ... */ };
class TExtended: TBase { /* ... */ );
 

C++ не хочет автоматически приводить тип TExtended * к TBase *. За что?!

Не вижу этому неприведению причин. Понимаю, в обратную сторону нарушит инкапсуляцию и потому его применять надо только если точно знаешь тип. Но в обратную, назад??

-- Вс ноя 21, 2010 02:15:34 --

Может, у Borland (точнее, уже CodeGear для моей версии) есть какая-нибудь опция компилятора для снятия этого безобразия? (Microsoft VC++ тоже интересует, но не так сильно.)

 Профиль  
                  
 
 Re: Какова причина этого нехорошего поведения?
Сообщение21.11.2010, 00:48 
Заслуженный участник


31/12/05
1517
class TExtended: public TBase

 Профиль  
                  
 
 Re: Какова причина этого нехорошего поведения?
Сообщение21.11.2010, 08:21 
Заслуженный участник


04/05/09
4587
Базовые классы по умолчанию private у классов (у структур - public). Соответственно снаружи тот факт, что TBase является предком, скрыт.

 Профиль  
                  
 
 Re: Какова причина этого нехорошего поведения?
Сообщение21.11.2010, 13:08 
Заслуженный участник


27/04/09
28128
Ойй. Спасибо. Я думал, по умолчанию у классов public тоже. :oops: Спасибо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group