模板函数

类中写函数模板不能在.cpp中写定义,只能是内联函数

 

在C++中,模板函数可以定义在类中,称为成员模板函数。成员模板函数可以是普通成员函数或静态成员函数,并且可以访问该类的所有成员变量和成员函数。定义成员模板函数的语法如下:

c++
class MyClass {
public:
    template<typename T>
    void myMemberFunction(T arg) {
        // 在这里定义模板函数
    }
};
上述代码定义了一个名为myMemberFunction的成员模板函数,该函数使用一个模板类型参数T作为参数,可以接受任何类型的参数。在函数体内部,可以对参数进行任何操作,包括访问该类的成员变量和调用该类的成员函数等。

如果想要定义一个静态成员模板函数,只需要在函数声明和定义中添加static关键字即可,例如:

c++
class MyClass {
public:
    template<typename T>
    static void myStaticMemberFunction(T arg) {
        // 在这里定义静态模板函数
    }
};
上述代码定义了一个名为myStaticMemberFunction的静态成员模板函数,该函数使用一个模板类型参数T作为参数,并且被声明为静态函数。在函数体内部,可以执行与普通成员函数相同的操作,包括访问该类的静态成员变量和调用该类的静态成员函数等。

需要注意的是,成员模板函数在实例化时会为每个特定的模板参数生成独立的函数实例,因此如果在类声明中定义成员模板函数,需要将函数体放在头文件中,否则会导致链接错误。

posted @ 2023-05-23 17:22  远方是什么样子  阅读(29)  评论(0编辑  收藏  举报