C ++使用.h </template>中的<template>

时间:2012-10-14 14:56:21

标签: c++

我想创建一个

的函数

而t为template<typename T>

string myFunction(T t) {
    string str1;
    //some computation with t
    return str1();
}

因此,在我的.h文件中,我执行类似

的操作
class myClass {
    private:
    //some variable
    public:
    string myFunction(T); 
}

当然它会出错,说“什么是T?”

我应该怎样做才能使myFunction能够获得T

1 个答案:

答案 0 :(得分:3)

制作成员函数模板:

class Foo {
    template<typename T>
    string myFunction(T t)
    {
    }
};

或者,创建一个类模板:

template<typename T>
class Foo {
    string myFunction(T t)
    {
    }
};

对你的案件有意义。如果你在课外定义函数,那么:

class Foo {
    template<typename T>
    string myFunction(T);
};

template<typename T>
string Foo::myFunction(T t)
{
}

用于成员函数模板,或

template<typename T>
class Foo {
    string myFunction(T);
};

template<typename T>
string Foo<T>::myFunction(T t)
{
}

用于课堂模板。