c++小知识点记录

传递引用作为函数参数时,实参不能是表达式。

传递引用时,并且参数为const时。
当参数类型不匹配,但是可以转换的,会创建一个临时变量,
当实参不是一个左值(例如表达式),会创建一个临时变量,
临时变量的生存期为函数调用时期。

左值是可寻址的变量,有持久性;
右值一般是不可寻址的常量,或在表达式求值过程中创建的无名临时对象,短暂性的。
左值和右值主要的区别之一是左值可以被修改,而右值不能。

用const和非const 的数据类型 来实现函数重载,适用于指针和引用,非const 数据的指针和 引用优先和非const 指针和 引用参数匹配

重载时,在模板实例化和普通函数之间,非模板函数优于模板函数, 若两个都是模板函数,则 优先更匹配的(更具体的

关键字 decltype (c++11
decltype (参数) 变量名称 ;(参数可以是表达式或者左值
作用:当目前不清楚这个变量 的数据类型时,给一个变量一个未来的数据类型。
例子:

template <class T1,class T2>
void ft( T1 t1,T2 t2)
{
	
//此时并不知道xpy 的数据类型。
	? type ? xpy = x + y;
	//此时利用 decltype ,xpy 的数据类型会在x y 的数据类型确定之后随之确定。
	decltype(x + y) xpy = x + y;

}

c++后置返回类型

template <class T1,class T2>
void ft( T1 t1,T2 t2) ->decltype(x+y)
{
	
//此时并不知道xpy 的数据类型。
return x + y;

//错误的使用,原因是此时还未声明x y,他们不在作用域内  (c++书上的,还是没太理解)
return decltype(x+y)  


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值