模板类函数
Template Class functions
本文关键字:类函数 更新时间:2023-10-16
这里没有程序员,只是学习c++的类模板。
我当前的项目要求我创建一个可以使用int、doubles或字符串作为参数的模板类。
到目前为止,每次创建类函数的实现时,我都必须为每个函数制作3个(每个参数类型一个)。
我的问题是,如果一个特定类函数的实现无论参数类型如何都完全相同,那么有没有办法只为它编写一个实现?
提前感谢所有回复!
这个问题有点不清楚——首先你说类模板采用不同的参数,但后来听起来你的成员函数采用了这些不同的参数。
如果你的模板类看起来像
template<typename T>
class X
{
public:
X(const T& t) : m_t(t) {}
void print();
private:
T m_t;
};
print
的实现可能如下所示:
template<typename T>
void X<T>::print()
{
std::cout << m_t;
}
成员函数也可以是模板:
template<typename T>
class X
{
public:
X(const T& t) : m_t(t) {}
template<typename U>
void printBefore(const U& u);
private:
T m_t;
};
类模板中函数模板的定义如下:
template<typename T>
template<typename U>
void X<T>::printBefore(const U& u)
{
std::cout << m_t << u;
}
相关文章:
- 如何通过派生类函数更改基类中的向量
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 在类函数中初始化外部作用域变量
- c++ 在非类函数中使用类变量
- SDL_PollEvent() 无法捕获类函数内部SDL_QUIT?
- 从类成员函数到类 C 函数指针的转换
- 如何在模板类函数中分配结构值?
- 有没有办法将重载的类函数绑定到函数对象?
- 启动类函数作为失去引用的线程
- C++调用使用重写函数的父类函数
- 将值传递到另一个类函数在打印时为零
- 计算对类函数的所有调用次数
- 由于签名差异,调用了错误的子类函数
- 使用宏调用类函数
- 虚拟基类函数中派生类的大小
- 模板类/函数中的交叉前向声明
- 在C++中使用非静态类函数的函数
- 无法访问基类函数 C++
- 类函数返回到另一个类函数返回打印不同的值
- C++ 在外部使用嵌套结构实现类函数