变量类型的构造函数

时间:2018-12-27 13:33:46

标签: c++

这是一个非常基本的问题,但是对于变量的声明,构造函数称为吗?

Amazon.Auth.AccessControlPolicy

2 个答案:

答案 0 :(得分:2)

注释起来,int POD(普通旧数据)类型。

  

C ++中的普通旧数据结构是一个聚合类,其中包含   仅PODS作为成员,没有用户定义的析构函数,没有用户定义   复制分配运算符,并且没有非静态成员   成员指针类型

请注意,构造函数不过是成员函数。成员函数必须属于一个类,并且如上所述,int只是内置的基本变量类型,不是类。因此,要回答您的问题,没有构造函数需要声明非类类型,例如原始数据类型,数组类型,指针类型等。

但是,这可能会导致人们误解为看到这样的初始化;

int var(10);

即使它的外观和行为与构造函数非常相似,也没有所谓的构造函数。这只是一个初始化。 int var(10);等于int var = 10;

答案 1 :(得分:1)

首先,您必须了解内置类型没有拥有构造函数;这是为用户定义的类型(类)保留的特权。

您真正要问的是类型Derived的数据成员是否默认为零初始化,答案为no;它们是“默认初始化的”,这使它们具有无法读取的未指定值。

您应该在类构造函数int中自己初始化y -这就是它的作用!假设您希望它为零:

A()

全局变量有些不同。上面我所写的内容对于这些基本上仍然是正确的,但是由于它们具有静态存储持续时间,因此有一个“额外”步骤使程序启动前所有位都为零。尽管缺少显式的初始值设定项,它的作用是使class A { public: int y; A() : y(0) {} }; 初始化为零,您可以依靠它。

您的C ++书籍中有关变量初始化的章节将对此进行更详细的介绍。