Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Си++ template, замор 
:(
    Опции темы
GrayCardinal
Дата 15.2.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 2
Всего: 58



Как в template класса объявить функцию, принимающую любой другой тип (ну, навроде тоже temlate'а).
Страуструпа не читал, пока методом индукции smile Все логичные варианты вроде перебрал... И ничего. :-(

Код


template <typename T>
class TipaClass {
    ...
    anyFunction (anyType);

    ...
};


Соответственно правильно записать anyFunction в хэйдере и в коде...
Заранее спасибо...
Олег.

ЗЫ
Простите великодушно наСишника за такие вопросы smile


--------------------
PM MAIL WWW   Вверх
Sartorius
Дата 15.2.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 8
Всего: 37



 Если тип аргумента должен отличаться от T так и объяви еще один typename в template...
PS http://valera.asf.ru/cpp/book/c16.shtml - там все подробно написано

Это сообщение отредактировал(а) Sartorius - 15.2.2007, 18:31
PM MAIL ICQ   Вверх
Xenon
Дата 15.2.2007, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Код

template <typename T>
class TipaClass {
    ...
    template <typename anyType>
    anyFunction (anyType);

    ...
};


?


--------------------
user posted image  
PM MAIL   Вверх
Oleg_Ci
Дата 15.2.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 3
Всего: 30



Вчера такое замутил
Код

template <typename type>
class CList{
...
    template <typename Ty> 
    bool operator==( const CList<Ty> & List ) const;
};

template <typename type> template <typename Ty>
bool CList<type>::operator ==( const CList<Ty> & List )const{
...
}

PM MAIL   Вверх
Xenon
Дата 15.2.2007, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



Отедльно в хедере и реализацие? Ну тогда не получится сделать функцию, которая принимает любой типа - тебе придется моделью явного воплощения определить какие-то конкретные типы - проще все в хедере сделать smile


--------------------
user posted image  
PM MAIL   Вверх
GrayCardinal
Дата 15.2.2007, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 2
Всего: 58



Xenon
Ага. А код ? Если не в хейдер, а вынести ?
Извините, конечно... Доку почитаю... Только _не сейчас_  smile (брррррррррр  smile )


--------------------
PM MAIL WWW   Вверх
Xenon
Дата 15.2.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



GrayCardinal, Ну тогда придется либо явно воплощаться, либо использовать export, но это почти никем не поддерживается ... Поэтому рекомендуется объявлть и определять класс и его члены в одном модуле.
ЗЫ. Если вынести код в том же модуле, то все будет нормально. К тому же Oleg_Ci уже привел пример smile

Это сообщение отредактировал(а) Xenon - 15.2.2007, 19:35


--------------------
user posted image  
PM MAIL   Вверх
nickless
Дата 15.2.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Можно еще 2 хедера использовать, один для объявления всего, а другой для реализации шаблонов, компилятору без разницы, а файлы поменьше будут


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
GrayCardinal
Дата 15.2.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 2
Всего: 58



Xenon
Oleg_Ci, говоришь ? Ах, вот оно что ... угум 
(рука придерживающая веко отпадает, глазик закрывается... все спасибо, до завтра, парни smile )


--------------------
PM MAIL WWW   Вверх
Xenon
Дата 15.2.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



nickless, так это же будет разделенением на интерфейс и реализацию, а это 2 уже две единицы компиляции ?


--------------------
user posted image  
PM MAIL   Вверх
HappyLife
Дата 15.2.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 3
Всего: 8



Для люблю типа, можешь еще заюзать, функцию принимающую много параметров.
PM MAIL   Вверх
nickless
Дата 15.2.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Xenon, нет, я имею ввиду типа этого:
Код

template <class T>
class Blah
{
    Blah(T);
};

#include "Blah.t"

Просто хедер на 2 части разделить, а то не люблю я хедеры на несколько сотен строк  smile 


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
GrayCardinal
Дата 16.2.2007, 04:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 2
Всего: 58



Цитата

Для люблю типа, можешь еще заюзать, функцию принимающую много параметров. 

Тоже вариант  smile

Добавлено @ 04:50 
PS.
уберите нафиг шапки ! а то реклама редхета какая-то :-(


--------------------
PM MAIL WWW   Вверх
V.A.KeRneL
  Дата 16.2.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vadim A. Kazantsev
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 3.12.2006
Где: Moscow, Russia

Репутация: 1
Всего: 14



Цитата(GrayCardinal @  16.2.2007, 04:48 Найти цитируемый пост)

PS.
уберите нафиг шапки ! а то реклама редхета какая-то :-(

Угу, точняк! smile Мож тогда ваще их не убирать, а договориться с ними о спонсорстве?



--------------------
«C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы»
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

PM MAIL IM ICQ AOL YIM MSN   Вверх
GrayCardinal
Дата 16.2.2007, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 2
Всего: 58



V.A.KeRneL
Во-во smile (млин  smile )


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1063 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.