Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sergio1
12 / 1 / 1
Регистрация: 08.11.2008
Сообщений: 41
#1

Функции, зависимые от параметра шаблона - C++

05.09.2010, 13:04. Просмотров 521. Ответов 2
Метки нет (Все метки)

Всем привет. Допустим имеется шаблонный класс
C++
1
2
3
4
5
6
7
8
9
template<class T>
class Test
{
  T _t;
public:
  Test(T& t) : _t(t) { } 
  int SomeFunction1() { return 0; }
  int SomeFunction2() { return _t.foo(); }
};
Как сделать так чтобы SomeFunction2() была доступна только когда Т имеет функцию int foo()? А в случае если класс не имеет такую функцию то чтобы функция SomeFunction2() была недоступна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2010, 13:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции, зависимые от параметра шаблона (C++):

Создание шаблона bool-функции, принимающей в качестве параметра экземпляр класса - C++
Добрый день. Никак не получается осилить) Суть: есть классы, у которых есть поле str - массив символов. Хочу сделать...

Структура в качестве параметра шаблона - C++
Добрый день, возник вопрос при выполнении КР по программированию: Можно ли передать структуру в качестве параметра в шаблона класса. То...

Передача класса в качестве параметра шаблона - C++
Имеется два класса, один это однонаправленный итератор, другой это двунаправленный. Двунаправленный получается из однонаправленного. Вот...

Объявление параметра типа шаблона дружественным - C++
Объясните, что значит friend Type?

Передача параметра шаблона другому шаблону при использовании - C++
Вопрос довольно сложно поставил, поэтому лучше объясню кодом, возможно ли это или нет. Итак есть класс. Назовем его A: class A { ...

Функции, зависимые от реализации компилятора - C++
какой вызов является зависимым от реализации компилятора? realloc(..., 0) memcpy() между объектами, перекрывающими друг друга ...

2
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
05.09.2010, 17:32 #2
Шаблоны компилируются отдельно для каждого типа, т.е. если в переданом Т не будет определена функция foo(), то компилятор попросту выдаст ошибку при попытке вызова.
0
Nick Alte
Эксперт С++
1640 / 1012 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
05.09.2010, 18:52 #3
А ещё точнее, компилятор выдаст ошибку в том случае, если в переданном классе (назовём его Т0) не определена функция foo() и при этом хоть где-нибудь вызывается функция Test<T0>::SomeFunction2(). Если её вызова нет, то всё проканает даже при отсутствии foo(), ибо невызываемые функции в шаблонах не создаются.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2010, 18:52
Привет! Вот еще темы с ответами:

Как вы шаблонном классе определить контейнер, тип которого совпадает с именем параметра шаблона? - C++
собсно template &lt;class T&gt; class perestanovki { public: T&lt;int&gt; v; }; int main () {

Разработайте перегружены функции, в которые передаются два параметра типов int или float и три параметра типов - C++
Разработайте перегружены функции, в которые передаются два параметра типов int или float и три параметра типов int или float и возвращают...

Использование функции как параметра другой функции - C++
В задании указано, что функция P прибавляет значение функции ff к элементу массива, если он входит в промежуток от C до D, которые вводятся...

Передача функции в качестве параметра функции - C++
Дорогие форумчане! Повторяю пример из книжки. До конца не понял его! Помогите разобраться! Тема: односвязный линейный список. Плюс,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru