如何从模板类方法中调用已定义类的方法

som*_*rti 2 c++ templates

我应该如何从模板类方法中调用已定义类中的方法?以下是我的情景 -

  1. 模板类

    template <class T>
    class TC {
        void myTemplateMethod() {
            T.myMethod();  //can I call like this ?
        }
    }; 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 定义的类

    class tdef {
        void myMethod() { 
            //does something
        }
    };
    
    Run Code Online (Sandbox Code Playgroud)
  3. 主要

    int main()  {
        TC<tdef> tobj;
        tobj.myTemplateMethod(); //can I call tdef.myMethod() like this?
    }
    
    Run Code Online (Sandbox Code Playgroud)

请注意,我已经调试了这样的代码,并且发现tdef.myMethod()在这样调用时不起作用.还有什么机会在从Template类方法中调用tdef.myMethod()时不处理某些异常?

-Somnath

Ben*_*igt 6

这是一个非静态成员函数,因此只能在实例上调用它.模板不会改变这一事实.

T t;
t.myMethod();
Run Code Online (Sandbox Code Playgroud)

或者如果函数是静态的:

T::myMethod();
Run Code Online (Sandbox Code Playgroud)