简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:理解C++之默认与自定义构造函数问题。
默认构造函数default
关键字的作用
<1>.在C++11之前,如果我们想要使用编译器自动生成的默认构造函数,可以不声明任何构造函数,编译器会自动创建默认构造函数。
<2>.然而,如果我们在类中自定义了其他的构造函数,编译器将不会生成默认构造函数。这可能会导致一些问题,例如在某些情况下我们可能仍然需要默认构造函数。
<3>.为了解决这个问题,C++11引入了default
关键字,它允许我们显式地声明使用编译器生成的默认构造函数。通过在成员函数定义中使用default
关键字,我们告诉编译器使用默认实现。这样就可以在自定义构造函数的同时保留默认构造函数的生成。
<4>.使用default
关键字的好处是使代码更加清晰和一致。通过在代码中明确使用default
关键字,让读者知道我们是有意地选择了默认构造函数的生成,而不是忘记或遗漏了相应的构造函数的定义。
总而言之,default
关键字的引入使得我们能够明确地声明使用编译器生成的默认构造函数,以便在需要时轻松获得默认构造函数的行为。
2.应用实例
<1>.代码示例
#include <iostream>
class Item {
public:
int value;
//默认构造函数
Item() = default;
//自定义构造函数
Item(int v) : value(v) {}
};
int main() {
//使用默认构造函数创建对象
Item item1;
//使用自定义构造函数创建对象
Item item2(42);
item1.value = 111;
std::cout << "item1.value: " << item1.value << std::endl;
std::cout << "item2.value: " << item2.value << std::endl;
return 0;
}