Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > class __int__ : public int {};


Автор: np9mi7 24.3.2006, 01:38
Добрый день!

Имеется код:
Код

class __int__ : public int {};


Компилятор Microsoft Visual C++ 2005 выдает ошибку:
Цитата

error C2062: type 'int' unexpected


А почему так нельзя?

Заранее благодарен за ответы.

Автор: chipset 24.3.2006, 02:10
Дизайн и эволюция C++
Цитата

Я подумывал о том, чтобы пойти дальше и разрешить наследование от встроенных типов и явное объявление для них встроенных операторов. Но сдержался.

Если разрешить наследование от int, программисть на C++ фактически не получит ничего принципиально нового по сравнению с членом типа int. Ведь в классе int нет виртуальных функций, которые производный класс мог бы заместить. С другой стороны, правила преобразования в C настолько хаотичны, что никак не удается представить, будто int, short и т.д. — обычные классы с предсказуемым поведением. Они либо сохраняют совместимость с C, либо подчиняются четким правилам C++ для классов, но не то и другое одновременно.

Разрешить переопределять встроенные операторы — operator+ (int, int), например, — заодно значило сделать язык подверженным мутациям. Однако идея разрешить синтез таких функций, чтобы можно было передавать указатели на них или ссылаться как-то иначе, довольно привлекательна...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)