栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

构造和析构

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

构造和析构

对象的初始化和清理也是两个非常重要的安全问题。

(1)一个对象或变量没有初始化状态,对其使用后果是未知的。

(2)同样的使用完一个对象或变量,没有及时清理,也会照成一定的安全问题。

1. c++利用构造函数和析构函数解决上述问题,这两个函数都会被编译器自动调用,完成对象初始化和清理工作。

2.   对象的初始化和清理工作是编译器强制要我们去做的事情,因此如果我们不提供构造和析构函数,编译器会自动提供,编译器提供的构造和析构函数是空实现。

构造函数:主要作用在创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无需手动调用。

构造函数替换set,例如:

#include
using namespace std;
class A
{
	public:
		void setx(int a)
		{
			x=a;
		}
	private:
		int x;
};
int main()
{
	
	return 0;
}

替换为:

#include
using namespace std;
class A
{
	public:
		A(int a)
		{
			x=a;
		}
	private:
		int x;
};
int main()
{
	
	return 0;
}

特点:

1)构造函数的名字与类名相同。

2)构造函数无返回值。

3)构造函数可以有多个参数(根据成员变量的数量)。

4)构造函数由系统自动调用,在创建对象的同时系统会自动调用构造函数。

注意:c++类中不是必须有默认构造函数,如果你自己实现了构造函数,就没有,如果没有实现构造函数,系统就默认加上一个默认构造函数。

构造函数调用规则如下:

(1)如果用户定义有参构造函数,c++不再提供默认无参构造函数,但是会提供默认复制构造函数。

(2)如果用户定义了复制构造函数,c++不会提供其它(默认无参构造函数、有参构造函数)构造函数了。

析构函数:主要作用在于对象销毁前系统自动调用,执行一些清理工作。

析构函数:回收对象。

特点:

1)析构函数的名字是类名前加~。

2)析构函数没有返回值。

3)析构函数没有参数,只能定义一个。

4)在对象被回收时由系统自动调用。

例如:

#include
using namespace std;
class A
{
	public:
		~A()
		{
			
		}
	private:
		int x;
};
int main()
{
	
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850694.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号