Дизайн и эволюция C++
| Цитата | Я подумывал о том, чтобы пойти дальше и разрешить наследование от встроенных типов и явное объявление для них встроенных операторов. Но сдержался.
Если разрешить наследование от int, программисть на C++ фактически не получит ничего принципиально нового по сравнению с членом типа int. Ведь в классе int нет виртуальных функций, которые производный класс мог бы заместить. С другой стороны, правила преобразования в C настолько хаотичны, что никак не удается представить, будто int, short и т.д. — обычные классы с предсказуемым поведением. Они либо сохраняют совместимость с C, либо подчиняются четким правилам C++ для классов, но не то и другое одновременно.
Разрешить переопределять встроенные операторы — operator+ (int, int), например, — заодно значило сделать язык подверженным мутациям. Однако идея разрешить синтез таких функций, чтобы можно было передавать указатели на них или ссылаться как-то иначе, довольно привлекательна...
|
|