初始化列表-默认值
Initialization in list - default value
我有这个代码示例:
#include <iostream>
using namespace std;
class Polygon
{
private:
double _Field;
public:
Polygon(): _Field(){}
void show_field(){ cout << _Field << endl; }
};
int main()
{
Polygon P1;
P1.show_field();
return 0;
}
我只是想知道为什么show()方法总是显示我0值?初始化列表
Polygon(): _Field(){}
初始化给定字段默认为0,如果没有参数存在?
是的。就像
double d = double();
double *p = new double();
用0
初始化d
,用0
初始化*p
。
()
初始化器代表c++中的值初始化,对于标量类型可以归结为零初始化。它不以任何方式限制于构造函数初始化列表。它可以在各种其他上下文中使用
从标准化时代开始在c++中就是这样工作的,除了在c++ 03之前的版本中没有值初始化这样的东西。在c++ 98中,()
初始化器触发默认初始化,这也将标量类型归零。
在现代c++ (c++ 11及更高版本)中,您可以使用{}
初始化器而不是()
初始化器来达到相同的效果。使用{}
,您还可以执行
double d{};
声明变量d
用0
初始化
当您执行_Field()
时,我认为您执行零初始化。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 具有默认值的引用获取函数
- 当给定默认值时,为什么此模板参数推导失败
- 从具有默认值的部分指定模板类继承时发生SWIG错误,具有不带默认值的正向声明
- 格式化浮点值:返回默认值
- 如何将数组部分初始化为某个默认值?
- asn1c 不会从 asn.1 模块中提取八位字节字符串的默认值
- 创建一个包含 c++ 默认值的环境文件
- C++(和 ROS) - 包含与前向声明引用,设置默认值和类型定义
- Makefile g++ 使用命令行中的 -D 变量进行编译,默认值
- Switch 语句(字符串)一直选择默认值,除非其为零
- 如何使用默认值将枚举声明为 extern
- 如何在提升程序选项中设置矢量<矢量>的默认值<string>
- 如何使用默认值为构造函数中的枚举赋值?
- 变量始终在函数中重置为默认值
- 初始化类成员 - 默认值还是成员初始化列表?
- c++初始化列表和默认值
- 用作映射值的列表的默认值
- 初始化列表-默认值
- c++初始化列表中的默认值