【问题标题】:Managing Templates on Member Functions管理成员函数模板
【发布时间】:2010-11-25 21:50:25
【问题描述】:
class myclass {
   // Definitions of cotrs and dtor...
   // ...
   // Defining a method of mine that needs a template
   template < typename T >
   void dosome(T& par);
}

在 cpp 文件中执行时要做什么? 我觉得这个很好:

template <typename T>
void myclass::dosome< T >(T& par) {
   // My code
}

但是编译器真的很生气...... 这种情况下的语法是什么?谢谢你

【问题讨论】:

    标签: c++ templates function member


    【解决方案1】:

    您希望在标题中包含整个模板定义。

    【讨论】:

    • 不,我不希望模板应用于整个类,只应用于方法。
    • 好吧,我可以管理它,它几乎是正确的,告诉我 J.Calleja 是一种更好的方法,但编译器最终接受了两者,其他地方有一个错误.. :)
    • “告诉我 J. Calleja 是一种更好的方法” 不,Calleja 告诉过你也要把它放在标题中。如果您将模板方法的定义放在 CPP 文件中,它将仅在该翻译单元中可用。换言之,您将无法在其他 CPP 文件中使用该模板。
    【解决方案2】:

    语法是用于函数的语法:

    template<typename T> void myclass::dosome(T &par) {
      // ...
    }
    

    但是,通常您应该在标题中包含模板定义。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多