类与对象(2)

我们在了解了类的简单创建后,需要对类的创建与销毁有进一步的了解,也就是对于类的构造函数与析构函数的了解。

目录

注意:

构造函数的特性:

析构函数:


注意:

该部分内容为重难点内容,在正常的学习与学校的考试中,该内容为必要内容,读者不能因为其较难而放弃。

类在创建与销毁时,会伴随着构造函数和析构函数的调用。
当我们没有对这两个函数进行定义时,系统会主动给我们生成一个无参的构造函数和一个无参的析构函数。


构造函数的特性:

1.构造函数的函数名与类的名称相同

class Date
{
public:
	Date()
	{

	}
	~Date()
	{

	}
};

2.构造函数分为初始化构造函数和拷贝构造函数

注意:这一期我们针对初始化构造函数进行讲解,拷贝构造函数将放于单独一期
3.构造函数在类创建时对类内数据进行一定的初始话操作

class Date
{
	public:
		Date(int year=2024,int month=7,int day=10)
		{
			_year=year;
			_month=month;
			_day=day;
		}
	private:
		int _year,_month,_day;
				
} ;


4.构造函数可以进行函数重载
 

class Date
{
	public:
		Date()
		{
			_year=2024;
			_month=7;
			_day=10;
		}
		Date(int year)
		{
			_year=year;
		}
		Date(int year,int month)
		{
			_year=year;
			_month=month;
		}
		
		Date(int year,int month,int day)
		{
			_year=year;
			_month=month;
			_day=day;
		}
		 
	private:
		int _year,_month,_day;
				
} ;

注意:我们进行函数重载时,需要注意对于析构函数我么要注意函数的各种类型都要对应,不然系统就无法匹配相应的构造函数类型。

所以我建议读者在创建构造函数时,可以创建全缺省的函数:

class Date
{
	public:
	
		
		Date(int year=2024,int month=7,int day=10)
		{
			_year=year;
			_month=month;
			_day=day;
		}
		 
	private:
		int _year,_month,_day;
				
} ;


析构函数:

1.析构函数是在类名前面加一个~


class Date
{
	public:
		Date(int year=2024,int month=7,int day=10)
		{
			p=new int(10);
		}
		~Date()
		{
		 	delete[]p;
		}
	private:
		int _year,_month,_day;
		int*p;			
} ;


2.析构函数的作用,对数据进行释放处理,对栈区消耗内存进行及时的释放

如果不进行手动释放内存会有所堆积,从而导致栈溢出。
3.对需要内存释放的类,必须进行释放处理,也就是我们此时必须要自己写析构函数
4.析构函数不能进行函数重载

对于两者的区别我们不再进行讨论,读者自己进行对比吧。

相关推荐

  1. PTA--《面向对象程序设计》作业2-对象

    2024-07-11 04:24:02       29 阅读
  2. 对象(2

    2024-07-11 04:24:02       29 阅读
  3. 面向对象——对象

    2024-07-11 04:24:02       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 04:24:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 04:24:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 04:24:02       58 阅读
  4. Python语言-面向对象

    2024-07-11 04:24:02       69 阅读

热门阅读

  1. Rust入门实战 编写Minecraft启动器#3解析资源配置

    2024-07-11 04:24:02       19 阅读
  2. 精通Postman响应解析:正则表达式的实战应用

    2024-07-11 04:24:02       23 阅读
  3. 4DRadarSLAM算法复现

    2024-07-11 04:24:02       20 阅读
  4. 使用Spring Boot和mkcert解决本地及局域网HTTPS访问

    2024-07-11 04:24:02       27 阅读
  5. 掌握Perl的文件系统钩子:深度集成的艺术

    2024-07-11 04:24:02       22 阅读
  6. 拼多多职位数据信息采集

    2024-07-11 04:24:02       20 阅读
  7. Gunicorn的预分叉架构:快速启动与高效资源利用

    2024-07-11 04:24:02       21 阅读