C++ 类中会用到的关键字之-default(virtual、override、friend、default、delete、final)
本文主要梳理下default相关知识点!
4.default
c++中引入default,引入目的如下:
- 提高执行效率;
- 在编译器无法生成默认构造等函数时,方便书写;
| default使用条件 | 说明 |
|---|---|
| 1 | default使用范围必须是类的特殊成员函数(默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符) |
| 2 | 默认构造函数、默认析构函数不能有默认参数 |
例子:
#include<iostream>
#include<stdlib.h>
class Base
{
public:
Base() = default; //显示声明默认构造函数
//Base(int i = 100) = default; //带默认参数的构造函数:错误:‘Base::Base(int)’不能被默认化
virtual ~Base() = default;
Base(const Base&) = default; //该函数比用户自己定义的默认函数获得更高的代码效率
Base& operator = (const Base&); //声明
virtual void getBaseInfo() {std::cout << "iNum:" << iNum << std::endl;}
virtual void setBaseInfo(int i) {iNum = i;}
private:
int iNum ;
};
Base& Base::operator = (const Base&) = default; //类外定义,也可使用default
int main()
{
Base struBase;
struBase.setBaseInfo(0);
Base struBaseNext(struBase); //默认拷贝构造函数
struBaseNext.getBaseInfo();
struBaseNext.setBaseInfo(100);
Base struBaseFin = struBaseNext; //默认赋值函数
struBaseFin.getBaseInfo();
struBaseFin.setBaseInfo(200);
struBaseFin.getBaseInfo();
return 0;
}
iNum:0
iNum:100
iNum:200
本文深入探讨C++中default关键字的应用,特别是在默认构造函数、析构函数、拷贝构造函数及拷贝赋值运算符中的作用。通过具体示例,展示了default如何提升代码效率并简化编程过程。
928

被折叠的 条评论
为什么被折叠?



