【笔记】默认构造函数和零初始化

2022/4/12 23:16:14

本文主要是介绍【笔记】默认构造函数和零初始化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

默认构造函数会为类里面所有的内建类型执行零初始化(说人话就是把 intlong longdouble 之类的东西都赋成 0),但怎么做才能激发默认构造函数呢?

这个问题里面有很好的解释:Does the default constructor initialize built-in types?

仅当用户调用默认构造函数的时候才会执行零初始化。直接创建一个类将会执行编译器提供的隐式构造函数,它不会执行任何操作(其实可以认为编译器提供的隐式构造函数不是默认构造函数)。

示例:

MyNonPodClass instance1;//built in members will not be initialized
MyPodClass instance2;//built in members will not be initialized
MyPodClass instance3 = MyPodClass();//built in members will be zero initialized
MyPodClass* instance4 = new MyPodClass;//built in members will not be initialized
MyPodClass* instance5 = new MyPodClass() ;//built in members will be zero initialized

所以,当你创建一个你的矩阵类,想要做矩阵快速幂的时候,请使用 mat a = mat(); 来为 mat 里的元素清零。



这篇关于【笔记】默认构造函数和零初始化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程