Скачать MetaTrader 5

Попытка реализации функции IsPointer - страница 2

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Скачай MetaTrader 5 для iPad и торгуй в любом месте!
Ilya Prozumentov
275
Ilya Prozumentov 2016.09.07 12:03  
LRA:

Вот Ваш класс прекрасно перегрузился

 Тут явно указан тип указателя класса
bool Тип(Color* Параметр)
Представьте, что классом ArrayList буду пользоваться не только я. Тогда никто заранее не знает, указатель на какой класс будет передан. Писать на каждый новый класс ещё одну версию перегрузки - выход совсем не изящный.
Алексей Тарабанов
7216
Алексей Тарабанов 2016.09.07 20:48  
SunnYtheDreamer:
 Тут явно указан тип указателя класса
Представьте, что этим классом буду пользоваться не только я. Тогда никто заранее не знает, указатель какого класса будет передан. Писать на каждый новый класс ещё одну версию перегрузки - выход совсем не изящный.
У Вас нелады с основами, если хотите - можете обидеться. 
Ilya Prozumentov
275
Ilya Prozumentov 2016.09.07 21:49  
tara:
У Вас нелады с основами, если хотите - можете обидеться. 
Нет, не на что. Я неявно забыл упомянуть контекст. Исправил. Хотя можно и догадаться, поскольку слишком сильная смысловая не стыковка для тем с классами, указателями, перегрузками. Как бы ошибка другого уровня.
Комбинатор
15931
Комбинатор 2016.09.17 19:09  

Шаблоны то что ищете вы

#property strict

template <typename T>
bool IsPointer(T)
{
   return false;
}

template <typename T>
bool IsPointer(const T&)
{
   return false;
}

template <typename T>
bool IsPointer(T* ptr)
{
   return true;
}

class T
{};

void OnStart()
{
   int x = 1;
   T t;
   T* pt = GetPointer(t);
   
   Print(IsPointer(x));
   Print(IsPointer(t));
   Print(IsPointer(pt));
}
Ilya Prozumentov
275
Ilya Prozumentov 2016.10.02 16:53  
TheXpert:

Шаблоны то что ищете вы

 

Отлично! Спасибо, работает. Про существование шаблонов мне известно и местами я их уже применял, но то, что можно сделать перегрузку самих шаблонов - я совсем не подозревал. Как это возможно? Особенно тот момент где с виду не полностью описываются входные параметры. Где об этом можно узнать поподробней?
Комбинатор
15931
Комбинатор 2016.10.02 17:00  
SunnYtheDreamer:
Где об этом можно узнать поподробней?
Поищите по теме перегрузка и специализация шаблонных функций в С++
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий