C++ 类中会用到的关键字之-default(virtual、override、friend、default、delete、final)

本文深入探讨C++中default关键字的应用,特别是在默认构造函数、析构函数、拷贝构造函数及拷贝赋值运算符中的作用。通过具体示例,展示了default如何提升代码效率并简化编程过程。

C++ 类中会用到的关键字之-default(virtual、override、friend、default、delete、final)

本文主要梳理下default相关知识点!

4.default

c++中引入default,引入目的如下:

  1. 提高执行效率;
  2. 在编译器无法生成默认构造等函数时,方便书写;
default使用条件说明
1default使用范围必须是类的特殊成员函数(默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符)
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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值