构造函数的用法
The usage of constructor
构造函数用于在创建对象后初始化字段(属性(,对吗? 并且内存在实例化之前不为类代码分配空间。所以没有什么要初始化的。
那么下面的代码如何在没有构造函数的情况下打印值为 12 的num?
#include<iostream>
using namespace std;
class My_Class{
public:
int num =12;
};
int main(){
My_Class Hello;
cout<<Hello.num;
}
My_Class
有一个隐式定义的默认构造函数,该构造函数设置由默认成员初始值设定项指定num == 12
在 C++11 中,您可以在声明中为非静态成员变量提供一个初始化值,就像对int num = 12
所做的那样。此num(12)
隐式添加到默认构造函数的初始化列表中。换句话说,它与您编写的相同:
My_Class() : num(12) {}
注:注:即使尚未显式添加默认构造函数,编译器也会隐式添加它。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 构造函数的用法
- 使用指针复制构造函数用法
- CPP/C 中的常量用法和结构构造函数中的澄清
- 复制构造函数方法的用法
- 参数和成员变量在构造函数中的用法
- C 中的构造函数和破坏者的内联用法
- 为什么内存泄漏只发生在赋值运算符重载的情况下,而不是在复制构造函数中,以及复制和交换习惯用法如何解决它
- 使用检测习惯用法来确定类型是否具有具有特定签名的构造函数
- C++:复制和交换习惯用法,替代构造函数
- 带有智能指针的虚拟构造函数习惯用法
- 如何实现拷贝交换习惯用法的复制构造函数
- 对象构造函数"settings"习惯用法
- c++单例用法:编译器抱怨私有构造函数
- 移动构造函数的预期用法未发生
- const char*在构造函数中的用法