C++ 仿函数,仿指针, 类与函数互转、、
conversion function转换函数(把对象转换为一个其他的类型)
格式 operator 类型() const
{
return (类型)(。。。);
}
格式 operator 类型() const
{
return (类型)(。。。);
}
//没有返回值没有参数
non-explicit-one-argument ctor(把其他类型数据对象转换为类对象)
explicit用在构造函数,不允许自动转化,函数转对象,对象转类
one-argument 只要一个实参
explicit用在构造函数,不允许自动转化,函数转对象,对象转类
one-argument 只要一个实参
所以与其相对应的有
explicit-one-argument ctor
与上两种相比对
如果两种同时存在则编译出错(主要取决于使用者怎么去用)
如果两种同时存在则编译出错(主要取决于使用者怎么去用)
例如:
pointer-like classes智能指针(像一个指针比普通指针做更多的事情)
pointer-like classes里面一定会有个真正的指针
->有个特殊的行为,会作用下去得到的结果,这个符号会继续作用下去
迭代器(智能指针 pointer-like )
function-like classes,仿函数(重载小括号)
任何一个东西如果能够接受小括号这个操作符,则称像函数
格式:返回值 operator()(形参){}
任何一个东西如果能够接受小括号这个操作符,则称像函数
格式:返回值 operator()(形参){}
namespace作用是把一些东西区别开来
模板,class, function,member
泛化就是模板
特化,面对某些独特的类型要做特别的处理
模板模板参数
引用一定要有初值
特化,面对某些独特的类型要做特别的处理
模板模板参数
引用一定要有初值
this
动态分配跟new/delete有关
当成员函数的const(全局函数不可以)non-const版本同时存在,const对象只会(能)
调用const版本,non-const对象只会(能)调用non-const版本
动态分配跟new/delete有关
当成员函数的const(全局函数不可以)non-const版本同时存在,const对象只会(能)
调用const版本,non-const对象只会(能)调用non-const版本