【C++基础】构造函数与析构函数
类中的对象,不仅可以有变量,还可以有函数;那么构造函数与析构函数是两个特殊的函数。
构造函数
构造函数定义了一个名称与类名相同,没有返回值的函数,这个函数成为构造函数;
它会在类的实例化中被调用(上一文章提过)。
析构函数定义则是一个名称比类名多一个“~”的函数,同样没有返回值;构造函数在对象实例化的时候调用,析构函数则是在对象被销毁的时候调用。
#include<iostream>
class Stu{
pbulic:
Stu(); //构造函数
~Stu(); //析构函数
}
构造函数析构函数,普遍放在public中,以便让对象调用。
示例
#include <iostream>
using namespace std;
class Stu{
public:
Stu(){
cout<<"学生类的构造函数执行"<<endl;
};
~Stu();
};
Stu::~Stu(){
cout<<"学生类的析构函数执行"<<endl;
}
int main()
{
Stu stu1; //栈中实例化
Stu *stu2 = new Stu; //栈中实例化
delete stu2; //栈中实例化,必须用delete释放
return 0;
}
这里我的析构函数采用的是类中声明,在类外定义,这种方法对于函数也是可行的。
在类实例化对象时候,如果没有构造函数,则编译器会合成一个默认的析构函数;当有了对象后,如果没有定义构造函数,则编译器会合成一个默认的析构函数。
//此时则是使用默认的构造函数和析构函数
class Stu{
public:
Stu();
~Stu();
};
//这种情况也是
class Stu{
public:
};
相关文章
【C++基础】类的继承
继承的概念 什么是继承:日常生活中儿子继承父亲,这个就是继承。 - 什么是基类和派生类 创建新类时,并不需要创建全新的数据和成员函数,我们可以指明这个新类继承现有类的成员。此时,现有的类称为“基类”(父亲),继承实现的新类称为“派生类”(儿子)。 _白话解释:创建一个孩子时,并不需要重新构造各种身体特征,可以直接表明这个孩子是某个活着的父亲的。那么孩子就可以和这个父亲在某些方面比较像。_...
【C++基础】函数重载
概念 在同一个作用域内,声明几个功能类似的**同名函数**,并且这些同名函数的**参数个数、参数类型或参数顺序不同,或者函数返回类型不同**,那么就叫函数重载。 _白话说明:函数就是可以看成一个人,这个人都叫刘bin,但是他们并不一样。_ 函数重载示例 ``` #include <iostream> using namespace std; class Stu { public:...
【C++基础】什么是类和对象
C语言是个面向过程的程序设计,C++是面向对象的程序设计 类的概念 - C++中的类是一种构造模型,与C的结构体相似,但进行了一些扩展,类的成员不但可以是对象还可以是函数;通过类定义的变量成为“对象”。 - 类是创建对象的模板,这里同样与C的结构体的概念类似,一个类可以创建多个对象,每个对象都是类这一类型中的一个变量;创建对象的过程也叫类的实例化。 - 如果理解不了,可以想象成...