| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Единый экземпляр метода для темплейта |
| Автор: Ivan. 4.9.2007, 13:12 | ||
| Если у шаблонного класса есть метод, то когда я создам несколько объектов с разными параметрами темплейта - у меня создастся несколько экземпляров тела метода в памяти кода. а как сделать так, чтобы метод был только один, как бы темплейт не сложился? пример:
код метода не зависит от параметра "size", по этому необходимо чтобы для любого "size" был один единый метод, а для разных параметров "From", "To" или "Temp" метод размножался. |
| Автор: bsa 4.9.2007, 13:22 |
| используй наследование. Метод запихай в базовый класс. |
| Автор: Daevaorn 4.9.2007, 16:45 |
| А если учесь что умные компиляторы очень часто мержат шаблоны, то вообще проблемы высосана из пальца |
| Автор: bsa 4.9.2007, 19:49 |
| Имхо, Ivan. ты сам себя перехитрил. В данном случае не нужно ставить size в качестве параметра шаблона, а память под data выделять и освобождать надо в конструкторе и деструкторе соответственно. |
| Автор: Ivan. 5.9.2007, 07:40 | ||
| Я ожидал все эти ответы, спосибо. Но проблема не из пальца, а из 128кБ памяти кода. экономить приходиться везде (это раз). Второе: выделение памяти не канает, потому как бъект такого класса должен создаваться и заполняться на этапе компиляции и лежать в памяти кода (const), тоесть инициализироваться через фигурные скобки. Отсуда и третья проблема - нельзя наследовать (наследование не инициализируется через фигурные скобки). Пример:
|
| Автор: Ivan. 5.9.2007, 10:49 | ||
Придумал
|