C++类构造函数与析构函数
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.派生类构造函数: 派生类不能继承基类的构造函数,必须自己定义构造函数进行新增数据成员初始化工作,如果想同时初始化基类数据成员,必须调用基类构造函数. (1)简单派生类构造函数: 1 #includ ...
- c++中的派生类构造函数和析构函数
1.派生类构造函数 派生类的构造函数必须自己定义,因为要对新增数据成员进行初始化.如果想要同时初始化基类的数据成员,必须调用基类的构造函数. 创建一个派生类对象的时候,首先调用基类的构造函数,再调用派 ...
- C++ 类(构造函数和析构函数)
文章概述 构造函数和析构函数的由来? 构造函数和析构函数的基本语法 C++编译器构造析构方案 PK 对象显示初始化方案 构造函数的分类以及调用 默认的构造函数 构造函数调用规则 构造函数和析构函数的总 ...
- C++经验(四)-- 基类构造函数和析构函数中调用virtual虚函数?
class Base {public:Base();virtual void oneFunction() = 0;... };Base::Base() {...oneFunction(); }clas ...
- 简单的派生类构造函数C++
**#include<iostream> #include <string> using namespace std; class Student{ public:Studen ...
- C++学习——构造函数,析构函数与虚函数关系
文章目录 1.构造函数,析构函数可以为虚函数吗? 2.析构函数和构造函数的作用? 3.构造函数和析构函数调用顺序? 4.类什么时候会调用析构函数? 1.构造函数,析构函数可以为虚函数吗? 构造函数不可 ...
- C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)
1. 构造函数 构造函数是一种特殊的函数(方法),在根据类创建对象时被调用.构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象作初始化. 构造函数的名称与类的名称是完全相同的,并且不会 ...
- 类继承中的构造函数与析构函数
构造函数初始化列表 子类的初始化列表,只能对子类的成员变量进行初始化 class Base{ public:int x; };class Derived : public Base { public: ...
最新文章
- 一个完整的iOS开发框架(Frameworks)-NimbusKit
- OVS DPDK--物理端口配置(三)
- 巧用shell+rsync服务实现日志自动过滤处理压缩并上传日志服务器,自动分类
- Golang 标准库log的实现
- Scrapy 爬虫去重效率优化之 Bloom Filter的算法的对接
- Mysql更新计数器_MySQL实现计数器如何在高并发场景下更新并保持数据正确性
- 求Python字典最小(最大)values对应的key
- 快速了解安卓四大组件
- linux添加phoenix引导,Phoenix OS安装方法
- 字符串进阶——谈谈后缀全家桶(1) 后缀树
- 锂离子电池电压与容量的关系及容量计算方法
- xp系统工作组计算机没有权限访问权限,XP系统工作组计算机没有法访问如何处理?...
- 技术领导力 程序员如何才能带团队 文摘 (一)
- 爱情 何为爱情(搜集)
- centos 虚拟机输入大小写混乱问题
- Summation of polynomials
- 为win10配置多个jdk的方法
- 水岸秀墅|千年石湖独一墅
- 大前端 - react - 服务端渲染 - Next.js
- 计算机学报韶关学院,期刊影响因子_自然科学_专业资料.doc