C++实参类型转换

本文主要介绍了C++中实参类型转换的规则,包括精确匹配、类型提升、类类型转换等,详细阐述了不同等级的转换情况,如数组和函数到指针的转换、const修饰符的影响、类型提升和类类型转换的细节。
摘要由CSDN通过智能技术生成

实参类型转换

基本来自 C++Primer5th
所指 章节 和 页码 都属 C++Primer 5th 中文版

off = 26

为了确定最佳匹配,编译器将实参类型到形参类型的转换划分成几个等级,具体排序
如下所示:(书P219)

  1. 精确匹配
    1. 实参类型和形参类型相同
    2. 实参从数组类型或函数类型转换成对应的指针类型(参见6.7节,第221页,将介
      绍函数指针)
    3. 向实参添加项层const或者从实参中删除顶层const。
  2. 通过const转换实现的匹配(参见4.11.2 节,第143页)
  3. 通过类型提升实现的匹配(参见4.11.1 节,第142页)
  4. 通过算术类型转换(参见4.11.1节,第142页)或指针转换(参见4.11.2节,第143
    页)实现的匹配
  5. 通过类类型转换实现的匹配(参见14.9节,第514页,将详细介绍这种转换)

前两种没什么好讲的 就字面意思

类型提升

void greet(const char*cc){
   
    std::cout<<cc<<std::endl;
}
void ff(int){
   greet("int");}
void ff(short){
   greet("short");}
int main(){
   
    ff('a');
//    ff(0); 如果没有 void ff(int) 函数 这个调用可以匹配 ff(short)
	return 0;   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值