C++编程中的变量初始化、常量正确性与类型转换
1. 变量初始化相关问题
在C++编程里,变量初始化有着多种形式,每种形式都有其独特的含义和用途。下面我们来分析以下几种初始化形式:
- T t; :这属于默认初始化。此代码声明了一个名为 t 、类型为 T 的变量,它会使用默认构造函数 T::T() 进行初始化。
- T t(); :这是一个容易让人误解的情况。乍一看,它好像是变量声明,但实际上它是一个函数声明,该函数名为 t ,不接受任何参数,并且通过值返回一个 T 对象。例如, int f(); 显然是函数声明, T t(); 与之类似。有人提议使用 auto T t(); ,试图利用 auto 存储类来表明想要一个默认构造的 T 类型变量 t ,但在符合标准的编译器中,这种写法是行不通的,编译器仍会将其解析为函数声明,而且指定返回值的 auto 存储类是不被允许的。其实,若想创建一个默认构造的 T 类型变量 t ,直接写 T t; 就可以了,没必要用复杂的写法去干扰后续维护代码的程序员。
-
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



