类的构造函数与析构函数

构造析构 构造函数 构造函数的定义 class 类名{ public: 类名();//构造函数 } 构造函数无返回类型也不需要写void 构造函数会自动调用,无定义时为空实现。因此需要我们定义构造函数进行数据的初始化 构造函数可以有参数也可以无参数,因此根据参数的类型构造函数可发生重载,且构造函数只能被调用一次。

构造函数可按有无参数分为有参构造函数和无参构造函数 构造函数按类型可分为普通构造函数和拷贝构造函数

构造函数参数类型
一无参构造函数普通构造函数
二有参构造函数拷贝构造函数

注意 不要用拷贝构造函数进行初始化匿名对象 编译器会认为book(b2);等于book b2;会造成重定义

以下为调用构造函数的实例:

#include<iostream>
using namespace std;
class book
{
public:
	book()
	{
		cout << "类的无参构造函数" << endl;
	}
	book(int a)
	{
		b = a;
		cout << "类的有参构造函数" << b << endl;
	
	}
	book(const book& b)
	{
		cout << "类的拷贝构造函数" << b.b << endl;
	}
	int b;
};
void test()
{
    //调用有三种方法调用
	//括号法
	book b1;
	book b2(10);
	book b3(b2);

	//显示法
	book b4;
	book b5 = book(10);
	book b6 = book(b5);

	//隐式转换法
	book b7 = 10;
	book b8 = b7;
}
int main()
{
	test();
	return 0;
}

注意

  1. 括号法的第一个: book b1; 不要在b1后面加(),如果加了会造成二义性,编译器无法识别
  2. 构造函数的实例中的显示法的book(10)为匿名对象

析构函数 析构函数的定义 class 类名{ public: ~类名();//析构函数 }

析构函数与构造函数的区别

相同 都会自动调用 不同

  1. 在类名前加"~"
  2. 析构函数无返回值且无参数,因此不可发生重载
  3. 析构函数发生在对象的销毁时
  4. 析构函数主要用于数据的销毁工作

以下为调用析构函数的实例:

#include<iostream>
using namespace std;
class person
{
public:
	~person()
	{
		cout << "类的析构函数" << endl;
	}
};
void test()
{
	person p1;
}
int main()
{
	test();
	person p2;
	system("pause");
	return 0;
}

注意:当运行到system("pause");时暂停,p2仍在main函数中,main函数为结束,因此p2为进行销毁,所以p2还未调用析构函数,当按任意键继续时main函数结束,p2内存回收,因此才会调用析构函数打印出信息。

更新于 2024/04/30

评论

评论 0

暂无评论
全部文章
music

521755ldsdl.jpg

关于

QAQ

C++离散化

为什么要离散化处理? 数据过于多时难以表示数组下标 离散化是什么? 可以类比哈希表 离散化就像哈

教程超详细xcpc滚榜教程

首先需要导出比赛的表格 1.处理表格 最终效果如下图 自行添加的列有id,judged,solv

C++快速幂

快速幂 用于快速求a^b的算法 思想:拆分 例:求2^13 等价于求 2^1 * 2^4 * 2

C++高精度运算(加减乘除)

在程序中高精度加法和高精度减法的运算本质是模拟我们在小学就学过的运算规则,也是我们平时用的运算规

C++素数筛法(埃氏筛法、线性筛法)

素数筛法:用于筛选出素数 核心思想:用一个数筛选其余的数 普通筛法: 时间复杂度为O(nlogn

C++二叉树的建立与遍历

二叉树是一种非线性数据结构. 二叉树 由节点构成,每个节点包含节点值和指向左节点和右节点的指针.

C++链表

链表是一种逻辑结构上的线性表,物理结构上的非线性表 链表由许多节点组成,每个节点有对应的值和指向

C++C++实现顺序表

顺序表,一种线性表,因此顺序表是线性的. 因为顺序表在物理结构与逻辑结构都是连续的.意味着在内存

PythonPython基础

标识符 Python中标识符由字母,数字,下划线组成. 字母区分大小写,不能以数字开头,以下划线

算法并查集

并查集 :并为合并(合并两个节点),查为查询(查询根节点),集是一个集合. 联通块问题 //各个

K 随时打开ESC 关闭

阅读设置

设置仅保存在当前设备。

主题

背景

文章布局