C++侯捷学习记录(四)

C++ 下

point - like

1 智能指针

template <class T> 
class shared_ptr
{
public:
	T & operator*() const 
	{
		return *px;
	}

	T* operator->() const
	{
		return px;
	}

private:
	T* px;
	long* pn;
};

2 迭代器 像一个智能指针
在这里插入图片描述
在这里插入图片描述
对 node 进行*号操作 解参考 *node 代表 链表结构体 (*node).data 代表值

仿函数 function-linke

仿函数 像函数一样 取调去调用 重载() 在这里插入图片描述
都继承了很奇怪的类 要在stl中才能仔细讲解
在这里插入图片描述

模板 class template

member template

黄色部分称为成员模板 本身他已经在模板中
外面的模板 是允许变化的 T1 T2 ,T1和T2确定后 U1 和U2 允许变化
在这里插入图片描述
举个例子
explicit 可以抑制内置类型隐式转换,所以在类的构造函数中,最好尽可能多用explicit关键字,防止不必要的隐式转换.
在这里插入图片描述
new 子类对象 指向 父类指针 是可以以的 base ptr * =new derived (可以考虑为指针上移)
智能指针可以实现这个功能在这里插入图片描述

模板特化 specialization

在这里插入图片描述
cout<< hash() (1000) 出现hash () 临时对象 会去找特化 1000 才是真正要操作的数

偏特化

1 个数偏
2 范围偏特化

模板模板参数

在这里插入图片描述

C++ 11 三个主题


1 … 符号 参数不确定性 … 代表一小包 数据
2 循环调用 print 最后一个调用 void print()
在这里插入图片描述
二 auto

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值