У меня такая же реализация для 2 методов, они оба вставляют аргумент в текстовый файл.Метод Virtual & Template C++
void WriteToFile(double content) //for double
{
streamFile << content;
streamFile << flush;
}
void WriteToFile(int content) //for integer
{
streamFile << content;
streamFile << flush;
}
Реализация такой же, поэтому я объединить их к методу шаблона:
template < class T>
void WriteToFile(T content)
{
streamFile << content;
streamFile << flush;
}
Но метод WriteToFile()
должен быть виртуальным.
Как я могу с этим справиться?
Поместите их обратно в отдельные функции ... шаблоны не могут быть 'virtual'. –
@TonyD, разве нет трюка? –
@yaelaviv Я пытался это сделать. Нет, нет, если вы не возражаете против возможности использовать полиморфизм во время выполнения. Тогда вы можете (** вид **) достичь этого с помощью [CRTP] (http://eli.thegreenplace.net/2011/05/17/the-curiously-recurring-template-pattern-in-c/) – druckermanly