C++类的构造函数和析构函数

一、构造函数

构造函数在类的对象被创建时,自己调用,不可以显式调用。通常用构造函数来做一些初始化的工作。
构造函数又分为两类:

   1. 无参数的构造函数2. 带参数的构造函数

无参数的构造函数的实例:

#include <iostream>
using namespace std;class Line
{public:void setL(int l);int getL();Line();private:int length;
};Line::Line(void)
{cout << "创建了一个对象\n" << endl;
}void Line::setL(int l)
{length = l;
}
int  Line::getL()
{return length;
}int main()
{Line line;line.setL(10);printf("The line's length is:%d",line.getL());return 0;
}

其运行结果为:

创建了一个对象The line's length is:10

不带参数的构造函数相对来说还是比较简单的。下面来看一下带有参数的构造函数:

#include <iostream>
using namespace std;class Line
{public:void setL(int l);int getL();Line(int l);private:int length;
};Line::Line(int l)
{length = l;cout << "创建了一个对象,并赋初值\n" << endl;
}void Line::setL(int l)
{length = l;
}
int  Line::getL()
{return length;
}int main()
{Line line(3);printf("The line's length is:%d\n",line.getL());line.setL(10);printf("The line's length is:%d",line.getL());return 0;
}

运行结果如下:

创建了一个对象,并赋初值The line's length is:3
The line's length is:10

同时也可用初始化列表的形式来初始化字段,只需要更改Line::Line(int l)这个函数的样子即可:

Line::Line(int l):length(l)
{cout << "创建了一个对象,并赋初值\n" << endl;
}

二、析构函数

析构函数用于对象被销毁时,释放内存空间,处理缓存垃圾等。同时析构函数与构造函数同样,不可以被显式调用。

#include <iostream>
using namespace std;class Line
{public:void setL(int l);int getL();Line(int l);~Line(void);private:int length;
};Line::Line(int l):length(l)
{cout << "创建了一个对象,并赋初值\n" << endl;
}Line::~Line(void)
{cout << "对象已经被销毁\n" << endl;
}void Line::setL(int l)
{length = l;
}
int  Line::getL()
{return length;
}int main()
{Line line(3);printf("The line's length is:%d\n",line.getL());line.setL(10);printf("The line's length is:%d\n",line.getL());return 0;
}

运行的结果为:

创建了一个对象,并赋初值The line's length is:3
The line's length is:10
对象已经被销毁

C++类构造函数与析构函数相关推荐

  1. 派生类构造函数和析构函数的执行顺序

    派生类继承了基类的成员,实现了代码的重复利用,但基类的构造函数和析构函数不能被继承.如果在派生类中需要对新增加的成员进行初始化,则需要加入派生类的构造函数.同样派生类也需要添加析构函数来实现一些结束工 ...

  2. 详解派生类构造函数与析构函数

    1.派生类构造函数: 派生类不能继承基类的构造函数,必须自己定义构造函数进行新增数据成员初始化工作,如果想同时初始化基类数据成员,必须调用基类构造函数. (1)简单派生类构造函数: 1 #includ ...

  3. c++中的派生类构造函数和析构函数

    1.派生类构造函数 派生类的构造函数必须自己定义,因为要对新增数据成员进行初始化.如果想要同时初始化基类的数据成员,必须调用基类的构造函数. 创建一个派生类对象的时候,首先调用基类的构造函数,再调用派 ...

  4. C++ 类(构造函数和析构函数)

    文章概述 构造函数和析构函数的由来? 构造函数和析构函数的基本语法 C++编译器构造析构方案 PK 对象显示初始化方案 构造函数的分类以及调用 默认的构造函数 构造函数调用规则 构造函数和析构函数的总 ...

  5. C++经验(四)-- 基类构造函数和析构函数中调用virtual虚函数?

    class Base {public:Base();virtual void oneFunction() = 0;... };Base::Base() {...oneFunction(); }clas ...

  6. 简单的派生类构造函数C++

    **#include<iostream> #include <string> using namespace std; class Student{ public:Studen ...

  7. C++学习——构造函数,析构函数与虚函数关系

    文章目录 1.构造函数,析构函数可以为虚函数吗? 2.析构函数和构造函数的作用? 3.构造函数和析构函数调用顺序? 4.类什么时候会调用析构函数? 1.构造函数,析构函数可以为虚函数吗? 构造函数不可 ...

  8. C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)

    1. 构造函数 构造函数是一种特殊的函数(方法),在根据类创建对象时被调用.构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象作初始化. 构造函数的名称与类的名称是完全相同的,并且不会 ...

  9. 类继承中的构造函数与析构函数

    构造函数初始化列表 子类的初始化列表,只能对子类的成员变量进行初始化 class Base{ public:int x; };class Derived : public Base { public: ...

最新文章

  1. 一个完整的iOS开发框架(Frameworks)-NimbusKit
  2. OVS DPDK--物理端口配置(三)
  3. 巧用shell+rsync服务实现日志自动过滤处理压缩并上传日志服务器,自动分类
  4. Golang 标准库log的实现
  5. Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
  6. Mysql更新计数器_MySQL实现计数器如何在高并发场景下更新并保持数据正确性
  7. 求Python字典最小(最大)values对应的key
  8. 快速了解安卓四大组件
  9. linux添加phoenix引导,Phoenix OS安装方法
  10. 字符串进阶——谈谈后缀全家桶(1) 后缀树
  11. 锂离子电池电压与容量的关系及容量计算方法
  12. xp系统工作组计算机没有权限访问权限,XP系统工作组计算机没有法访问如何处理?...
  13. 技术领导力 程序员如何才能带团队 文摘 (一)
  14. 爱情 何为爱情(搜集)
  15. centos 虚拟机输入大小写混乱问题
  16. Summation of polynomials
  17. 为win10配置多个jdk的方法
  18. 水岸秀墅|千年石湖独一墅
  19. 大前端 - react - 服务端渲染 - Next.js
  20. 计算机学报韶关学院,期刊影响因子_自然科学_专业资料.doc

热门文章

  1. 抖音python课程价格_抖音
  2. 【2017年第2期】社交网络分析在公共安全领域的应用
  3. redis windows安装
  4. 【离散数学】实验 编写一个简单的三人表决器
  5. 高时空损耗的Scanner会卡爆程序(记洛谷P1567的Java性能优化,Java语言描述)
  6. 【Java】奇葩的猴子排序
  7. 软件工程——认识方法、模型、工具和技术
  8. Java编译器优化与运行期优化技术浅析
  9. 【iOS开发】带有 Extension Target 的 App,如何签名打包
  10. CSS3中的动画效果记录