c语言构造函数和析构函数,深入解析C++中的构造函数和析构函数
构造函数:在类实例化对象时自动执行,对类中的数据进行初始化。构造函数可以从载,可以有多个,但是只能有一个缺省构造函数。
析构函数:在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个。
调用构造函数和析构函数的顺序:先构造的后析构,后构造的先折构。它相当于一个栈,先进后出。
#include
#include
using namespace std;
class Student{
public:
Student(string,string,string);
~Student();
void show();
private:
string num;
string name;
string sex;
};
Student::Student(string nu,string na,string s){
num=nu;
name=na;
sex=s;
cout<
}
void Student::show(){
cout<
}
Student::~Student(){
cout<
}
int main(){
Student s1("001","千手","男");
s1.show();
Student s2("007","纲手","女");
s2.show();
cout<
cout<
cout<
return 0;
}
先构造的千手,结果后析构的千手;后构造的纲手,结果先折构的纲手。
特点:在全局范围定义的对象和在函数中定义的静态(static)局部对象,只在main函数结束或者调用exit函数结束程序时,才调用析构函数。
如果是在函数中定义的对象,在建立对象时调用其构造函数,在函数调用结束、对象释放时先调用析构函数。
#include
#include
using namespace std;
class Student{
public:
Student(string,string);
~Student();
void show();
string num;
string name;
};
Student::Student(string nu,string na){
num=nu;
name=na;
cout<
}
void Student::show(){
cout<
}
Student::~Student(){
cout<
}
void fun(){
cout<
Student s2("002","自动局部变量");//定义自动局部对象
s2.show();
static Student s3("003","静态局部变量");//定义静态局部变量
s3.show();
cout<
}
int main(){
Student s1("001","全局变量");
s1.show();
fun();
cout<
cout<
return 0;
}
c语言构造函数和析构函数,深入解析C++中的构造函数和析构函数相关推荐
- java构造函数的作用6_谈谈 java 中的构造函数
本篇博文主要是为新手.对java语言感兴趣的人和那些没有系统学习过java基础知识的人进行一个总结,在文章中对构造函数进行了较为详细的说明和讨论,也包含了我个人对于java面向对象中构造函数的一些看法 ...
- c 语言 模板函数参数,深入解析C++中的函数模板和函数的默认参数
C++函数模板 我们知道,数据或数值可以通过函数参数传递,在函数定义时它们是未知的,只有在发生函数调用时才能确定其值.这就是数据的参数化. 其实,数据类型也可以通过参数来传递,在函数定义是可以不指明具 ...
- c语言for循环的范围,解析C++中的for循环以及基于范围的for语句使用
for循环语句 重复执行语句,直到条件变为 false. 语法 for ( init-expression ; cond-expression ; loop-expression ) statemen ...
- getvalue函数怎么使用_Java中的构造函数——通过示例学习Java编程(14)
作者:CHAITANYA SINGH 来源:通过示例学习Java编程(14):Java中的构造函数-方家话题 构造函数是用来初始化新创建的对象的代码块.构造函数类似于java中的实例方法(Instan ...
- php中的构造函数和析构函数,php 中构造函数和析构函数
构造函数: 在对象实例化时被调用,一个类中只能有一个构造函数,在类中起初始化的作用. 析构函数: 在对象结束时被自动调用. 话不多说,用一段代码来说明两者的区别: //定义一个类 class Pers ...
- Xamarin XAML语言教程XAML文件结构与解析XAML
Xamarin XAML语言教程XAML文件结构与解析XAML XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16 结构 其中,.xaml文件和.xaml ...
- 《R语言数据挖掘:实用项目解析》——第2章,第2.9节无参数方法
本节书摘来自华章出版社<R语言数据挖掘:实用项目解析>一书中的第2章,第2.9节无参数方法,作者[印度]普拉迪帕塔·米什拉(Pradeepta Mishra),更多章节内容可以访问云栖社区 ...
- 三级C语言上机考试试题与题解,全国计算机等级三级C语言上机试题逐题解析
三级网络技术和三级数据库技术的C语言上机试题难度较大,题型多样,因此颇难掌握,今将这些试题分类解析,希望能帮大家顺利通过上机考试. 三级的上机题可以分为十几个类型,每类中的题目数量不一,多则十几道题, ...
- 【小白学习C++ 教程】十二、C++面向对象编程中的构造函数和析构函数
@Author:Runsen 面向对象编程旨在:在编程中实现继承.隐藏.多态等现实世界的实体.OOP 的主要目的是将数据和对它们进行操作的函数绑定在一起. 我们可以说C++中的类,代表一组共享一些共同 ...
最新文章
- C++重载运算符最好声明为友元
- 用 ABAP 实现的报表欢迎屏幕 - Splash Screen
- python能不能爬数据库_python爬取数据后不能写入到数据库中
- 【工具推荐】ADB IDEA
- arm workbench ide 用户指南_ARM_异常和中断
- clickhouse原理解析与应用实践 pdf_阿里专家分享内部绝密RocketMQ核心原理与最佳实践PDF...
- 浅谈各种连接池中连接数量的设置
- Front-End(一)
- PDF怎么翻译成中文?这些方法值得收藏
- 究竟是谁弄脏了我们的世界
- 《凤凰项目——一个IT运维传奇故事》关于运维员的那些事
- matlab做分数阶差分,分数阶微分方程数值实验MATLAB编码
- 计算机B和D的转换,模数转换
- 最长递增子序列 O(NlogN)算法
- 瞬时测频接收机matlab_瞬时测频接收机
- window 10系统修改C盘用户名过程
- 次世代zbrush骷颅头高模雕刻 艺术头骨SP模型材质贴图讲解
- 超实平面上函数的微分定义
- vue-router前端路由的两种模式的区别
- ios系统和android比较大小,iOS系统和安卓系统对比,有哪些优势和不足?