C++类的构造函数和析构函数调用语法、调用顺序和作用

构造函数 是初始化的操作 比如新手机开机需要初始化设置一样 如果没有设置 编译器会自动生成空的构造函数
主要作用在于创建对象时的成员属性赋值,构造函数由编译器自动调用,无需手动调用

构造函数调用语法: 类名(){}

1、构造函数,没有返回值也不用写void
2、函数名称与类的名称相同
3、构造函数可以有参数,因此可以发生重载
4、程序在调用对象的时候会自动调用构造,无需手动调用,而且只会调用一次
5、构造函数要在公共权限内

#include<iostream> #include<string>using namespace std;class Teacher{	public:		Teacher(string name="")//构造函数 与类名同名 无返回无void 		{		   cout<<"构造函数->请输入老师的姓名:"	<<endl;		   cin>>name;		   cout<<"构造函数->请核对老师的姓名:"<<name<<endl;		}};void Fun(){	Teacher T(""); //构造与析构无需调用 创建对象后自动调用 };int main() {	Fun();	system("pause");	return 0;}

因为以上构造函数含有参数,所以创建对象时需要有字符串值,我们这里设置为空 Teacher T(“”)

以上代码在创建对象T后编译器就自动调用了构造函数Teacher。

假如类中并未有构造函数 则会自动生成一个空函数 即 Teacher(){}

析构函数 主要作用在于对象销毁前系统自动调用,执行一些清理工作,就好像坏的手机要销毁前需要把手机内的资料清空一样。

析构函数语法:~类名(){} 注意类名前要加 ~

1、析构函数,没有返回值 也不用写void
2、函数名称与类同民 名称前需要加 ~
3、析构函数不可有参数,因此不可以发生重载
4、程序在对象销毁前会自动调用析构,无需手动调用 而且只会调用一次
5、析构函数要在公共权限内

#include<iostream> #include<string>using namespace std;class Teacher{	public:		~Teacher()//析构函数 与类名同名 无返回无void 类名前加波浪号~ 		{		   cout<<"这是析构函数,自动调用"	<<endl;		}};void Fun(){	Teacher T1; //析构无需调用 创建对象后自动调用 };int main() {	//Fun(); 	Teacher T1; 	system("pause");	return 0;}

注意析构函数名前需加波浪号~ (~符号的输入方法是英文状态下 按住shift键同时按住数字1左边的按键),大家可以动手试下 调用Fun() 和 直接在main函数内创建对象 会有什么样的区别。

调用Fun() 会感觉和构造函数没啥区别 但是如果直接在main函数内创建对象,就会发现区别所在了,析构函数会在你关闭的那一刻出现。

最后更新时间:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

上一篇2022-09-15 9:14:24
下一篇 2022-09-17 9:13:51

相关推荐

  • 没有相关文章!