-1

即使参考了http://www.cplusplus.com/doc/tutorial/templates/Template Template C++ Function,我仍然没有理解清楚。

如果我有一个给定的功能,说

week.cpp

void week::writeDate (const Vector<long>& L)

week.h

void writeDate (const Vector<long>& L)

我是否只是Template <week L>在 cpp 和 h 的函数名称之前写了?或者它会带来更多?

还是整个“周”课程本身必须是一个模板?

4

2 回答 2

1

在周.h

template <class T>
void writeDate (const Vector<T>& L)
{
   // code for function
}

在周.cpp

// nothing at all

这称为成员函数模板(或模板成员函数)。

于 2013-04-03T14:06:51.613 回答
0

如果您想writeDate用于任何类型的向量。然后你必须使它成为一个模板函数。我看不到整个代码,所以我不知道你是否在其他地方的周课程中使用了向量的类型,但如果你需要它只是为了writeDate那时

class week {
    // Other stuff

    template< typename T>
    void writeDate (const Vector<T>& L){
         // code goes here.
        }
// Other stuff

}

如果您的周课程以某种方式取决于向量的类型,那么

template < typename T>
class week {
// Other stuff

    void writeDate (const Vector<T>& L) {
     // code goes here.
    }

// Other stuff

}
于 2013-04-03T14:07:14.120 回答