2014 dxdy logo

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

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




 
 Какова причина этого нехорошего поведения?
Сообщение20.11.2010, 23:08 
Используется синтаксис C++
class TBase { /* ... */ };
class TExtended: TBase { /* ... */ );
 

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

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

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

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

 
 
 
 Re: Какова причина этого нехорошего поведения?
Сообщение21.11.2010, 00:48 
class TExtended: public TBase

 
 
 
 Re: Какова причина этого нехорошего поведения?
Сообщение21.11.2010, 08:21 
Базовые классы по умолчанию private у классов (у структур - public). Соответственно снаружи тот факт, что TBase является предком, скрыт.

 
 
 
 Re: Какова причина этого нехорошего поведения?
Сообщение21.11.2010, 13:08 
Ойй. Спасибо. Я думал, по умолчанию у классов public тоже. :oops: Спасибо!

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group