C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点

2024-06-04 2369阅读

类与对象(上):C++初阶学习第三弹——类与对象(上)——初始类与对象-CSDN博客

前言:

在前面文章中,我们已经讲了类与对象的思想和类与对象的一些基本操作,接下来这篇文章我们将讲解以下类与对象的六个默认成员函数(注意:这部分是类与对象的核心之一,理解这些默认成员函数才有助于我们更好的使用这些默认成员函数)

上一章内容:

C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点 第1张

目录

一、默认成员函数是什么?

二、默认成员函数有哪些?

三、六种默认成员函数

1、构造函数

1.1 构造函数的作用

1.2 构造函数的用法

1.3 默认构造函数

2、析构函数

2.1 析构函数的作用

2.2 析构函数的用法

2.3 默认析构函数

3、拷贝构造函数

3.1 拷贝构造函数的作用

3.2 拷贝构造函数的用法

3.3 默认拷贝构造函数


一、默认成员函数是什么?

在一个类中,我们一般称呼里面的变量等统统为成员,自然函数称为成员函数,变量称为成员变量

class A
{
public:
	int Add(int x,int y)   //成员函数
	{
		return x + y;
	}
private:
	int a;   //成员变量
};

而默认成员函数就是不用写,编译器会自动生成的函数,比如上面写的Add函数如果为默认生成函数,那么我们可以不进行声明定义,直接调用该函数,具体操作我们可以往下看

二、默认成员函数有哪些?

在解答这个问题之前,我们首先先来考虑,为什么语法上会创建这种默认成员函数,其实就是因为人的惰性,如果一个函数每个类都需要调用或者有可能调用到,那我们为什么不可以通过底层的一些操作,让每个类中都自动生成这些成员函数,这就是默认成员函数

通过上面我们应该明白,默认成员函数一定是所有类中都需要的,那主要有哪些呢?

主要有以下六种:

C++初阶学习第四弹——类与对象(中)——刨析类与对象的核心点 第2张

三、六种默认成员函数

1、构造函数

1.1 构造函数的作用

构造函数是用来初始化的,初始化对于每个类对象都是不可或缺的

比如Date类:

class Date
{
public:
	void Init(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_day = day;
	}
private:
	int _year;
	int _month;
	int _day;
};
int main()
{
	Date a1;
	a1.Init(2023, 2, 4);
	Date a2;
	a2.Init(2024, 2, 4);
	return 0;
}

当我们创建Date类的成员时,比如例子中创建的a1、a2,在创建后我们需要对其初始化,但是每一个类成员我们都需要调用Init函数,这样就会显得十分麻烦,我们是否可以通过某种操作直接在创建类变量的同时进行初始化,这就是构造函数诞生的原因

1.2 构造函数的用法

注意事项:

1、首先,我们要知道构造函数其实就是特殊的成员函数,它还是封装在类中的

2、因为我们要实现在创建类变量的同时进行初始化,所以构造函数的名字与类名相同

3、构造函数可以是半缺省或者全缺省的

4、一个类中只能有一个构造函数,一旦自己写了编译器就不会生成默认构造函数

构造函数的形式如下:

class Date
{
public:
	Date(int year, int month, int day)
	{
		_year = year;
		_month = month;
		_year = year;
	}
	void Print()
	{
		cout 

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]