博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++中构造函数和析构函数的概念
阅读量:4211 次
发布时间:2019-05-26

本文共 985 字,大约阅读时间需要 3 分钟。

构造函数:

              1.  构造函数定义及调用

                 1) c++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的函数叫做析构函数;

                  2)   构造函数在定义时可以有参数;

                  3)   没有任何返回类型的声明

              2.  构造函数的调用:

                    自动调用:一般情况下c++编译器会自动调用构造函数

                    手动调用:  在一些情况下则需要手工调用构造函数

 

有关析构函数:

              3.  析构函数的定义及调用

                   1) c++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数,语法: ~ClassName()

                   2) 析构函数没有参数也没有任何返回类型的声明

                   3)  析构函数在对象销毁时自动被调用

              4.  析构函数的调用

                   c++编译器自动调用

 

看如下代码和输出(注意,在调用析构函数时,先创建的对象,后调用,注意查看输出):

#define  _CRT_SECURE_NO_WARNINGS #include 
using namespace std;class Test{public: Test() //无参数 构造函数 { a = 10; //作用完成对属性的初始化工作 p = (char*)malloc(100); strcpy(p, "aaaaffff"); cout << "我是构造函数 被执行了" << endl; } void print() { cout << p << endl; cout << a << endl; } ~Test() //析构函数 { if (p != NULL) { free(p); } cout << a <<" "<<"我是析构函数,被调用了" << endl; } void setA(int b) { a = b; }protected:private: int a; char* p;};//给对象搭建一个舞台,研究对象的行为void objplay(){ //先创建的对象 后释放 Test t1; t1.print(); printf("分隔符\n"); Test t2; t2.setA(20); t2.print();}void main(){ objplay(); cout << "hello..." << endl; system("pause"); return;

输出:

 

转载地址:http://ihzmi.baihongyu.com/

你可能感兴趣的文章
JQuery 简介
查看>>
Java创建对象的方法
查看>>
Extjs自定义组件
查看>>
TreeGrid 异步加载节点
查看>>
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>
材料与工程学科相关软件
查看>>
windows 下AdNDP 安装使用
查看>>
Project 2013项目管理教程(1):项目管理概述及预备
查看>>
ssh客户端后台运行
查看>>
【React Native】把现代web科技带给移动开发者(一)
查看>>
【GoLang】Web工作方式
查看>>
Launch Sublime Text 3 from the command line
查看>>
【数据库之mysql】mysql的安装(一)
查看>>
【数据库之mysql】 mysql 入门教程(二)
查看>>
【HTML5/CSS/JS】A list of Font Awesome icons and their CSS content values(一)
查看>>
【HTML5/CSS/JS】<br>与<p>标签区别(二)
查看>>
【HTML5/CSS/JS】开发跨平台应用工具的选择(三)
查看>>
【心灵鸡汤】Give it five minutes不要让一个好主意随风而去
查看>>
【React Native】Invariant Violation: Application AwesomeProject has not been registered
查看>>