2、类模板与操作符重载

C++类模板(1)
类也可以通过参数泛化,从而构建出一族不同型别的类实例(对象)。
类模板实参可以是牟一星别或常量
C++类模板(2)

const std::size_t DefaultStackSize = 1024;
template<typename T,std::size_t n=DefaultStackSize>class Stack{
public:
	void PUsh(const T const& element);
	int Pop(T& element);
	int Top(T& element) const;
private:
	std::vector<T> m_Membets;
	std::size_t m_nMaxSize = n;
};

C++类模板(3)
类模板的声明
声明类模板与声明函数模板类似
template <typename T,std::size_t n>class Stack{…};
成员函数和变量声明:
void PUsh(const T const& element);
std::vector m_nMaxSize ;
C++类模板(4)
类模板的构造函数中,完整的类型也要写出

template <typename T,std::size_t n>class Stack
{
public:
	...
	Stack(Stack<T,n> const &);
	Stack<T>& operator=(Stack<T,n> const&);//也就是不能只写Stack
	..
};

C++类模板(5)
类模板的实现
。。。。
C++类模板(8)
使用类模板
Stack stack;
Stack<int,100>stack;
注:在强制转换类型中,static_cast就是一个函数模板
static_cast(int a = 10);//其中的float就相当于T。
vector a(10);
C++类模板(9)
类模板特化
在这里插入图片描述
二、C++操作符重载(1)
关键字operator定义了一种特殊的函数,其实也就是
两个数相加函数为add(a,b);通过操作符重载+号,有了 a+b;就更方便,本质来说,operator+也函数功能是一样的,就是更方便。
C++操作符重载(2)
重载就是已经有的,所以不能定义一种新的操作符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值