c++ 里函数选择的优先级:普通函数、模板函数、万能引用,函数重载的常量左值引用、右值引用,编译器选择哪个执行呢?

看大师写的代码时,除了在类里定义了 copy 构造函数,移动构造函数,还定义了对形参采取万能引用的构造函数,因此有个疑问,这时候的构造函数优先级是什么样的呢?简化逻辑测试一下,如下图,先看不含万能引用的版本:

当又含有万能引用的构造函数呢?

因此,出现这种情况时,要注意编写的重载的构造函数的语义的一致性,避免出错。

(2)这是后来的补充:

以及:

以及

以及:

谢谢

相关推荐
名字还没想好☜14 小时前
Go slice 的 append 陷阱:共享底层数组导致的数据串改
开发语言·后端·golang·go·slice
bitbrowser14 小时前
Claude 账号频繁被封?转向国内可直接使用的 AI 工具
开发语言·php
An_s14 小时前
机器学习python之识别图中物品信息
java·linux·开发语言
小雪_Snow14 小时前
JavaScript 中的三种常用事件
开发语言·前端·javascript
米罗篮14 小时前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)
c++·线性代数·算法·矩阵
肖爱Kun14 小时前
C++设计策略模式
开发语言·c++·策略模式
灯澜忆梦15 小时前
GO_面向对象_方法
开发语言·golang
布朗克16815 小时前
Go 入门到精通-16-字符串深入
开发语言·后端·golang·字符串
北冥you鱼15 小时前
Go flag 包详解:从命令行解析到实战应用
开发语言·后端·golang
炸膛坦客16 小时前
单片机/C/C++八股:(二十四)编译文件( .bin 和 .hex ,包括 .elf 和 .axf )
c语言·c++·单片机