2016-02-12 4 views
1

Я ищу, чтобы начать вставлять шаблоны в свой код класса C++, но я столкнулся с ситуацией, которую я раньше не испытывал. В принципе у меня есть класс без шаблонов, но только 1 функция в классе, который мне нужно запланировать.Функция шаблона C++ внутри класса без шаблона

class example 
{ 
public: 
example(); 
~example(); 
<template T> templatefunction(T); 
nontemplatefunction(string x); 
}; 

Возможно ли это? Если да, то это общее решение или я смотрю шаблоны полностью по ошибке?

+1

Это прекрасно. –

+0

Если вы исправите синтаксис, было бы хорошо сделать это. –

ответ

2

Как отмечают в комментариях, нет никаких проблем с этим.

Один из аспектов, на которые следует обратить внимание, - это где положить определение метода templatefunction. В настоящее время (см. ISO cpp FAQ), вы должны рассмотреть возможность размещения его в файле заголовка, который отличается от того, что вы, вероятно, сделали бы с определением других методов. Таким образом, вы должны были бы example.hpp:

class example 
{ 
public: 
example(); 
~example(); 
template<typename T> void templatefunction(T); 
void nontemplatefunction(string x); 
}; 

template<typename T> void example::templatefunction(T) 
{ 

} 

, а затем example.cpp:

example::example(){} 

void example::nontemplatefunction(string x) 
{ 

}