| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Оформление реализации класса |
| Автор: Хоббит 12.1.2012, 09:38 | ||||
Создаем мы некоторый класс. Его объявление.
А теперь реализация
А теперь вопрос. Одному мне не нравится в реализации 1. Необходимость постоянно повторять template <typename T> Vector<T> ... 2. Отсутствие наглядной структуры класса (не ясно какой метод public, какой private Я конечно понимаю, что объявлять отдельно интерфейс это хорошо и то-то определение методом можно и в класс втроить, но это не очень хорошо. Но все же. Может есть какие-то способы "оформления" реализации, чтобы она была более понятной. |
| Автор: boostcoder 12.1.2012, 10:09 |
| реализацию шаблонных(и не только) классов всегда пишу прям в декларации. |
| Автор: borisbn 12.1.2012, 13:50 | ||
1. Мне тоже не нравится 2. Почему же ? Как раз для наглядности (!!!) и делается разделение на объявление и реализацию. Я, например, частенько разбиваю на 2 файла (*.h и *.hpp). В *.h делаю объявление и инклюдаю соответствующий *.hpp, в котором и делаю реализацию. Во-первых, *.h-ник легко читается, во-вторых в *.cpp-ник (или в другой *.h-ник) инклюдается только маленький, простенький и понятный *.h. ИМХО - нормальный подход |
| Автор: mes 12.1.2012, 14:43 |
как это только ?! |
| Автор: borisbn 12.1.2012, 14:44 |
| Автор: boostcoder 12.1.2012, 19:25 | ||
аналогично. но .hpp и .impl |
| Автор: spyswamp 12.1.2012, 20:37 |
| Та же фигня, но *.h/*.hpp + *.inl Если нетрудно, то расскажите, откуда взяли h+hpp (именно такая связка, отдельный hpp - это, обычно, хидер C++, но больше дело вкуса) и impl (что-то новенькое)? |
| Автор: boostcoder 12.1.2012, 21:15 |
| наверное это последствия какой-то дисциплины программирования. так, к примеру, есть проекты в которых используются расширения .cxx/.hxx, .cc/.hh, .C/.H от implementation. |
| Автор: spyswamp 12.1.2012, 22:59 |
| boostcoder, спасибо, кэп. |