网站移动化建设方案,asp.net 网站建设方案,wordpress页面属性模板怎么添加,中国建筑装饰百强排名简介#xff1a; CSDN博客专家#xff0c;专注Android/Linux系统#xff0c;分享多mic语音方案、音视频、编解码等技术#xff0c;与大家一起成长#xff01; 优质专栏#xff1a;Audio工程师进阶系列【原创干货持续更新中……】#x1f680; 人生格言#xff1a; 人生… 简介 CSDN博客专家专注Android/Linux系统分享多mic语音方案、音视频、编解码等技术与大家一起成长 优质专栏Audio工程师进阶系列【原创干货持续更新中……】 人生格言 人生从来没有捷径只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注Android系统攻城狮 1.前言 本篇目的理解C之默认与自定义构造函数问题。 默认构造函数default关键字的作用
1.在C11之前如果我们想要使用编译器自动生成的默认构造函数可以不声明任何构造函数编译器会自动创建默认构造函数。
2.然而如果我们在类中自定义了其他的构造函数编译器将不会生成默认构造函数。这可能会导致一些问题例如在某些情况下我们可能仍然需要默认构造函数。
3.为了解决这个问题C11引入了default关键字它允许我们显式地声明使用编译器生成的默认构造函数。通过在成员函数定义中使用default关键字我们告诉编译器使用默认实现。这样就可以在自定义构造函数的同时保留默认构造函数的生成。
4.使用default关键字的好处是使代码更加清晰和一致。通过在代码中明确使用default关键字让读者知道我们是有意地选择了默认构造函数的生成而不是忘记或遗漏了相应的构造函数的定义。
总而言之default关键字的引入使得我们能够明确地声明使用编译器生成的默认构造函数以便在需要时轻松获得默认构造函数的行为。
2.应用实例
1.代码示例
#include iostreamclass 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;
}