在c ++中的非模板类中使用成员模板函数是否合适?

4 c++ templates class function

我想知道在c ++中的非模板类中使用成员模板函数是否是一个好习惯?为什么?

我正在尝试做这样的事情

in classA.h:
classA
{
   public:
      member_func1();
      member_func2();
};

in classA.cpp:
template <class T> share_func();

classA::member_func1()
{
   call share_func();
}
classA::member_func2()
{
   call share_func();
}
Run Code Online (Sandbox Code Playgroud)

我想知道它是否合适?

Rak*_*kis 6

这是模板函数的完全合法使用.此外,使用非模板类的模板化成员函数也没有问题.例如:

class A {
   public:
     void say_hello() { cout << "Hello World" << endl; }
     template<T> print_it( T arg ) { cout << "Argument: " << arg << endl; }
};
...
A a;
a.say_hello();
a.print_it( 3.14159 );
a.print_it( "A string" );
Run Code Online (Sandbox Code Playgroud)