Re[4]: Корректное и удобное использование указателей и ссыло
От: Andreev  
Дата: 22.07.05 07:20
Оценка:
Здравствуйте, Centaur, Вы писали:

C>А что, под DOS таки существуют компиляторы C++?


Я использую BC++ 5.0. Поскольку у меня контроллер на 386SX, то получается достаточно удобно и оптимизация поддерживается где-то до 150-го Пентиума. Не надо писать неудобный код на ассемблере (в смысле основные блоки у меня описаны классами). Для самих-же модулей ввода-вывода (используется кристал Atmel 8015) приходится писать на asm-е, хотя там и есть подобие C, но у меня нет компилятора (лень скачать).


C>Я так понимаю, в редакторе у этих классов одно поведение, в трансляторе другое? И набор методов разный. И всё разное, кроме представления данных. Так зачем хотеть реализовать оба проекта на одних и тех же классах?


Идея в том, что эти классы являются контейнерами для данных. Они должны выдавать описание свойств тех или инных объектов. Поведение-же этих объектов отличается, по-этому, методы реализованы на основе других классов. Единственными методами могут быть методы проверки корректности данных в этом классе (по идее, конечно).

C>Любой мало-мальски уважающий себя компилятор выбросит неиспользуемый код и не будет включать его в финальный бинарник.


Я согласен, но во-первых не уверен с данным утверждением для BC++ 5.0, а во-вторых, как правило, если ф-ция виртуальная, то она всеравно остается, поскольку очень тяжело на 100% определить, что не будет вызова этой ф-ции.


C>Ему не нужно определять, ему нужно подсунуть элементу соответствующим образом реализованного visitor’а.


Здесь я согласен, но нужно продумать механизм, какого визитора подсовывать. И если все это передается через некий поток (файл), то в нем всеравно надо сохранять типы элементов (может я конечно о чем-то не подозреваю). По этим типам, в принципе, конечно можно создать динамически создаваемые подклассы, хотя механизм получается достаточно сложный (скорее всего неоправданно).

С уважением.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.