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

时间:2011-06-06 23:48:35

标签: c++ templates

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

  1. 模板类

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

    class tdef {
        void myMethod() { 
            //does something
        }
    };
    
  3. 主要

    int main()  {
        TC<tdef> tobj;
        tobj.myTemplateMethod(); //can I call tdef.myMethod() like this?
    }
    
  4. 请注意,我调试了这样的代码,发现tdef.myMethod()在这样调用时不起作用。还有什么机会在从Template类方法中调用tdef.myMethod()时不处理某些异常?

    -Somnath

1 个答案:

答案 0 :(得分:6)

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

T t;
t.myMethod();

或者如果函数是静态的:

T::myMethod();