专业编程基础技术教程

网站首页 > 基础教程 正文

学习笔记:c++模板类概念与实例(c++中模板分为两类)

ccvgpt 2024-08-03 12:31:04 基础教程 11 ℃

模板:模板是对一种对类型进行参数化的工具。

模板的声明或者定义只能在全局,命名空间或者类范围内进行。即不能在局部范围,函数内进行。

学习笔记:c++模板类概念与实例(c++中模板分为两类)

函数模板 参数类型不一样的但是功能及函数名一样的函数

函数模板的声明定义语法上差异不大,就像普通函数一样使用

template

T add(T x, T y);

template

C add(C x, C y)

{

return x+y;

}

类模板 成员属性的类型和成员函数的类不一样但是成员属性及函数一样的类

template

class Demo{

public:

Demo(T1 a, T2 b);

void setx(T1 a);

static void sety(Demo &, T2 val);

T1 getx() const;

T2 gety() const;

private:

static T1 x;

T2 y;

};

友元函数模板

如果一个类是模板类,又要实现运算符重载,就是一个友元函数模板;

实质是类模板和函数模板的综合运用

template

class Demo{

public:

Demo(const int val);

public:

T getval() const;

void setval(const int val);

template

friend Demo operator+(const Demo &, const Demo &);

private:

T ival;

};

非类型模板参数

template

class Array{

public:

Array();

Array(const Array &);

~Array();

public:

T& at(const int id=0) const;

T& operator[](const int id)const;

private:

T* const buffer;

};

T:模板类型参数;len:模板非类型参数;T、len都可以有默认值

Tags:

最近发表
标签列表