首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在.cpp中实现属于非模板类的模板函数

在.cpp文件中实现属于非模板类的模板函数,可以按照以下步骤进行:

  1. 在.h文件中定义一个非模板类,并声明模板函数的原型。
代码语言:txt
复制
class MyClass {
public:
    template <typename T>
    void templateFunction(T arg); // 模板函数声明
};
  1. 在.cpp文件中实现非模板类的模板函数。
代码语言:txt
复制
template <typename T>
void MyClass::templateFunction(T arg) {
    // 模板函数的实现代码
}
  1. 注意,非模板类的模板函数的实现需要放在.cpp文件中,而非.h文件中。

下面是一个完整的示例代码:

在MyClass.h文件中:

代码语言:txt
复制
#ifndef MYCLASS_H
#define MYCLASS_H

class MyClass {
public:
    template <typename T>
    void templateFunction(T arg); // 模板函数声明
};

#endif // MYCLASS_H

在MyClass.cpp文件中:

代码语言:txt
复制
#include "MyClass.h"

template <typename T>
void MyClass::templateFunction(T arg) {
    // 模板函数的实现代码
}

这样,你就可以在非模板类中实现模板函数,并且将模板函数的声明放在类的头文件中进行调用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何优雅的传递 stl 容器作为函数参数来实现元素插入和遍历?

开始正文之前,做一些背景铺垫,方便读者了解我的工程需求。我的项目是一个客户端消息分发中心,在连接上消息后台后,后台会不定时的给我推送一些消息,我再将它们转发给本机的其它桌面产品去做显示。后台为了保证消息一定可以推到客户端,它采取了一种重复推送的策略,也就是说,每次当我重新连接上后台时,后台会把一段时间内的消息都推给我、而不论这些消息之前是否已经推送过,如果我不加处理的直接推给产品,可能造成同一个消息重复展示多次的问题。为此,我在接收到消息后,会将它们保存在进程中的一个容器中,当有新消息到达时,会先在这个容器里检查有没有收到这条消息,如果有,就不再转发。

02
领券