page contents

C++学习笔记——构造析构函数

C++学习笔记——构造析构函数
 一、类
1、类:用来封装数据的(数据(变量)+行为(函数))
2、类型定义不占数据内存
3、类定义分为两个部分:类说明和类实现两个部分
class Cstu//类说明
{
 int a;//类实现
private:
 void seta(int a);//类实现:定义这个类类型里面的行为,是怎么样的操作  访问类里面的数据叫接口
    void geta(){}; 
};
类中成员函数的定义叫类实现
  1、在类中定义
  2、在类外定义
void Cstu::seta(int a)//类外实现类内函数
{
 this->a=a;
}

4、类说明:定义一个类类型,告诉程序这个类型有什么样的数据,有什么样的行为
5、类实现:定义这个类类型里面的行为,是怎么样的操作    自己的只能自己用。   类里面的函数就是(接口为数据参数的函数)其他的都是行为
6、类名大写的C开始,表示一个C++的类;  类说明 :class Cstu{int id;};
7、类的三种访问属性  public(共有) private(私有) protected(保护)
8、这三种访问属性可以任意的出现在类的说明当中,不限次数,不限位置。每一个访问属性所修饰的区间是从当前属性开始到下一个属性结束(类末尾)
9、类默认是私有属性,只有类中的成员函数才能使用类中的私有数据(private)
10、类中公有的行为及数据可以在程序中被任何函数或语句所调用
11、类中的保护部分是不能在类外被调用的,只有类的子类可以调用(知道就可以了)
12、定义类时,当未指明成员是哪个属性,默认是私有
13、类的定义时,结尾加;

 
类中通过构造和析构来创建和释放对象
 构造:内存从无到有 就可以借助这个过程来完成对象的初始化
 析构:内存从有到无 借助这个过程来完成对象的清理(对对象里面所申请的堆区内存进行释放)
 
二、对象
 对象的初始化:
 1、直接赋值  (所有数据成员必须是公有,且没有声明任何的构造函数)

2、公有的初始化函数
 参看initA函数
 函数是一个成员,这个成员可以在任何时间,任何地点被调用
 
 3、构造函数  C++在类的说明中可以包含一个或多个特殊的公有函数成员-构造函数
 特性:
 1、函数名与类名相同
 2、没有函数返回值类型,也没有返回值
 3、一个新的对象被建立时,该对象的构造函数会自动地被调用,对这个对象进行初始化工作
 4、新对象的建立包括两种情况,CA a(对象说明语句);CA *pa = new CA(对象指针指向动态开辟的堆区无名对象);
 5、如果一个类说明中没有显式的给出构造,系统将自动地给出一个缺省的(隐式)什么都不干构造函数,<类名>(){};
 6、如果说明中包括多个构造函数,一般会有不同的参数列表和函数体
 
4、析构函数
特性:
1、函数名与类名相同,在前面加上一个~     ~<类名>() {}
2、没有函数返回值类型,也没有返回值,也没有参数
3、当对象出了他的作用域时,系统会自动调用析构函数
4、析构函数的作用一般是用于给对象里面在堆区申请的内存释放
5、一个类只有一个析构函数
6、如果一个类中没有显示的给出析构,析构将会自动给出一个(隐式)什么都不干的析构   ~<类名>() {}
 
this指针,C++的保留字,它是一个指针,在任何一个类成员函数的运行过程,这个this指针总是指向调用者对象
 *this 表示当前调用者对象
 this->成员名((*this).成员名) 表示当前调用者的某个成员
 return this; 来返回当前调用者对象的首地址
 return *this; 来返回当前调用者对象
 类名 * const this;
 指向类的对象 ,当对象创建之后,成员函数调用时,this就被说明和创建
  • 发表于 2021-06-04 19:08
  • 阅读 ( 720 )
  • 分类:C/C++开发

0 条评论

请先 登录 后评论
小威
小威

64 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章