构造函数:在类实例化对象时自动执行,对类中的数据进行初始化。构造函数可以从载,可以有多个,但是只能有一个缺省构造函数。

析构函数:在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个。

调用构造函数和析构函数的顺序:先构造的后析构,后构造的先折构。它相当于一个栈,先进后出。

#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++中的构造函数和析构函数相关推荐

  1. java构造函数的作用6_谈谈 java 中的构造函数

    本篇博文主要是为新手.对java语言感兴趣的人和那些没有系统学习过java基础知识的人进行一个总结,在文章中对构造函数进行了较为详细的说明和讨论,也包含了我个人对于java面向对象中构造函数的一些看法 ...

  2. c 语言 模板函数参数,深入解析C++中的函数模板和函数的默认参数

    C++函数模板 我们知道,数据或数值可以通过函数参数传递,在函数定义时它们是未知的,只有在发生函数调用时才能确定其值.这就是数据的参数化. 其实,数据类型也可以通过参数来传递,在函数定义是可以不指明具 ...

  3. c语言for循环的范围,解析C++中的for循环以及基于范围的for语句使用

    for循环语句 重复执行语句,直到条件变为 false. 语法 for ( init-expression ; cond-expression ; loop-expression ) statemen ...

  4. getvalue函数怎么使用_Java中的构造函数——通过示例学习Java编程(14)

    作者:CHAITANYA SINGH 来源:通过示例学习Java编程(14):Java中的构造函数-方家话题 构造函数是用来初始化新创建的对象的代码块.构造函数类似于java中的实例方法(Instan ...

  5. php中的构造函数和析构函数,php 中构造函数和析构函数

    构造函数: 在对象实例化时被调用,一个类中只能有一个构造函数,在类中起初始化的作用. 析构函数: 在对象结束时被自动调用. 话不多说,用一段代码来说明两者的区别: //定义一个类 class Pers ...

  6. Xamarin XAML语言教程XAML文件结构与解析XAML

    Xamarin XAML语言教程XAML文件结构与解析XAML XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16  结构 其中,.xaml文件和.xaml ...

  7. 《R语言数据挖掘:实用项目解析》——第2章,第2.9节无参数方法

    本节书摘来自华章出版社<R语言数据挖掘:实用项目解析>一书中的第2章,第2.9节无参数方法,作者[印度]普拉迪帕塔·米什拉(Pradeepta Mishra),更多章节内容可以访问云栖社区 ...

  8. 三级C语言上机考试试题与题解,全国计算机等级三级C语言上机试题逐题解析

    三级网络技术和三级数据库技术的C语言上机试题难度较大,题型多样,因此颇难掌握,今将这些试题分类解析,希望能帮大家顺利通过上机考试. 三级的上机题可以分为十几个类型,每类中的题目数量不一,多则十几道题, ...

  9. 【小白学习C++ 教程】十二、C++面向对象编程中的构造函数和析构函数

    @Author:Runsen 面向对象编程旨在:在编程中实现继承.隐藏.多态等现实世界的实体.OOP 的主要目的是将数据和对它们进行操作的函数绑定在一起. 我们可以说C++中的类,代表一组共享一些共同 ...

最新文章

  1. C++重载运算符最好声明为友元
  2. 用 ABAP 实现的报表欢迎屏幕 - Splash Screen
  3. python能不能爬数据库_python爬取数据后不能写入到数据库中
  4. 【工具推荐】ADB IDEA
  5. arm workbench ide 用户指南_ARM_异常和中断
  6. clickhouse原理解析与应用实践 pdf_阿里专家分享内部绝密RocketMQ核心原理与最佳实践PDF...
  7. 浅谈各种连接池中连接数量的设置
  8. Front-End(一)
  9. PDF怎么翻译成中文?这些方法值得收藏
  10. 究竟是谁弄脏了我们的世界
  11. 《凤凰项目——一个IT运维传奇故事》关于运维员的那些事
  12. matlab做分数阶差分,分数阶微分方程数值实验MATLAB编码
  13. 计算机B和D的转换,模数转换
  14. 最长递增子序列 O(NlogN)算法
  15. 瞬时测频接收机matlab_瞬时测频接收机
  16. window 10系统修改C盘用户名过程
  17. 次世代zbrush骷颅头高模雕刻 艺术头骨SP模型材质贴图讲解
  18. 超实平面上函数的微分定义
  19. vue-router前端路由的两种模式的区别
  20. ios系统和android比较大小,iOS系统和安卓系统对比,有哪些优势和不足?

热门文章

  1. 头文字D,Spider
  2. bigscreen使用教程_VR BigScreen steam-BigScreen VR下载 --pc6下载站
  3. 企业站推广:100种实用的推广方法(二)
  4. 探索式测试--第六章(实践中的探索式测试)--读书笔记
  5. 强化学习和生成对抗网络
  6. 用集合的思想分辨字条
  7. 《网络安全态势感知》学习笔记(一)——网络安全态势感知系统
  8. 2种可预防男性猝死的食物 你吃过吗?
  9. java中float和int类型转换
  10. UIPopoverController的使用,看着很牛逼的样子