当前位置: 首页 > news >正文

[C++]了解内置类型升级

内置类型升级

  • 1.调用模板T时,为什么可以使用T()类型的匿名对象来传参
  • 2.内置类型被升级成为类后的使用事项

1.调用模板T时,为什么可以使用T()类型的匿名对象来传参

  • 当我们在定义或声明一个函数时,如果想使用模板T类型的默认构造(例如使用string或vector的默认构造)
    可以选择如此传参
void Func(const T& val = T())
  • 第一次见这段代码,会提出一个问题:如果T是int或char等内置类型时,int()/char()的类型是否能通过编译

答案是可以

int i = 0;
int j = int();(默认构造)
int k = int(1):(非默认构造)

  • 从这里就能看出,C++的内置类型已经被升级成为了类型

2.内置类型被升级成为类后的使用事项

	int i;int j();int k(5);

  • 我们知道,当我们要创建一个实例化对象时,如果是类类型,(例如string)那么是不能采用string a();这种风格的创建,因为编译器无法判断a是对象还是函数
  • 但是我们再看int j();编译器虽然没有报错,但也没有创建j这个对象,事实上,这是一个函数声明,声明一个返回int类型且无参数的函数j
  • 对于i和k,如果上下文没有歧义,基本都是解释为初始化
http://www.lryc.cn/news/491496.html

相关文章:

  • docker镜像源配置、换源、dockerhub国内镜像最新可用加速源(仓库)
  • 什么是 WPF 中的依赖属性?有什么作用?
  • 241125学习日志——[CSDIY] [ByteDance] 后端训练营 [16]
  • 如何优化 PHP 性能?
  • 【Linux服务器】内存问题排查
  • ModuleNotFoundError: No module named ‘simple_knn‘
  • 【论文分享】采用现场测量、卫星影像和机器学习方法研究空气温度与城市发展强度之间的关系
  • Linux -初识 与基础指令1
  • 页的初步认识
  • [C++]:IO流
  • Excel如何批量导入图片
  • TCP socket api详解
  • 《C++搭建神经网络基石:开启智能编程新征程》
  • if (条件) { return true; } return false; 简写为 return 条件 详解
  • Pytorch使用手册-Datasets DataLoaders(专题三)
  • 【数据结构】双向链表、单向循环链表、双向循环链表、栈、链栈
  • (动画)Qt控件 QProgressBar
  • 【AI】基础原理
  • 多模态大型语言模型(MLLM)综述
  • 计算机的错误计算(一百六十六)
  • typeof 和 as 关键字
  • Python酷库之旅-第三方库Pandas(237)
  • git提交到远程仓库如何撤回?
  • 微信小程序常用全局配置项及窗口组成部分详解
  • ThingsBoard规则链节点:Azure IoT Hub 节点详解
  • 「Mac玩转仓颉内测版32」基础篇12 - Cangjie中的变量操作与类型管理
  • 【Android】RecyclerView回收复用机制
  • 麒麟系统性能瓶颈分析
  • Java二分查找+冒泡排序
  • (三)手势识别——动作识别应用【代码+数据集+python环境(免安装)+GUI系统】