TreeMind树图在线AI思维导图
当前位置:树图思维导图模板资格考试计算机类(函数)思维导图

类(函数)思维导图

  收藏
  分享
免费下载
免费使用文件
U132902212 浏览量:472023-06-07 19:05:39
已被使用8次
查看详情类(函数)思维导图

类(函数)

树图思维导图提供 类(函数) 在线思维导图免费制作,点击“编辑”按钮,可对 类(函数)  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a13f0bd799f2452dde6c9ca885209e35

思维导图大纲

类思维导图模板大纲

类中的权限

与结构体的区别

1、默认权限

类中默认的私有权限

结构体中默认的是公有权限

2、继承方式

结构体的默认继承方式是public

类的默认继承方式是private

类内 类外 子类 public T T T private T F F protected T F T

this指针

this指针是一个类内默认给非静态成员函数提供的,指向类对象的指针

非静态成员函数

指定义在类中的函数,非静态成员函数必须通过类的实例化对象来调用(先调用该类)。

必须使用this指针的场景

1、当成员函数的形参和成员属性重名时,使用this指针区分成员属性

2、在拷贝赋值函数中,涉及到对类对象自身的引用,需要用到this指针(后面讲)

类中的特殊成员

构造函数

作用:用来给类对象初始化空间

格式

类名() { 函数体 }

构造函数调用的时机

栈区:实例化类对象时,自动调用构造函数

堆区:定义类指针时,不调用构造函数,在使用new申请空间时才调用构造函数。

Person *p; //定义了一个Person类型的指针,但是不会调用构造函数 p = new Person; //new申请了一个类对象的空间,所以只调用一次构造函数

构造函数支持函数重载

初始化列表

和参数的默认值不是一个概念

初始化:定义的同时赋值

class ClassName { public: // 构造函数定义 ClassName([参数列表]) : [成员变量1](初值), [成员变量2](初值) ... [成员变量n](初值) { // 构造函数主体 } };

class Person { //类中有const修饰的成员属性时,需要使用构造函数的初始化列表 //const int age; //类中有引用的成员属性时,需要使用构造函数的初始化列表 int age; int high; public: Person(int age,int high):age(age),high(high) //age(age) = int &age = age;初始化的值从主函数传入传入 { cout << "有参构造" << endl; } void show() { cout << age << "\t" << high << endl; } };

在函数内部赋值不叫初始化

当类中,含有const修饰的成员或则有引用成员时

当类中含有其他类的类对象时,并且其他类的类对象使用了有参构造时

在执行时,会先执行其他函数的构造(与析构相反),然后执行自己的。

在引用类时,不需要参数,因为引用时,说明该类中有一个类的对象属性,所以不需要加参数,而主函数中,需要参数,是因为将类实例化

析构函数

功能

释放对象空间

格式

~类名() { 函数体; }

注意:析构函数不允许重载

两种拷贝构造

person p5=p3

person p5( p3 )

调用时机

栈区:类对象消亡后,主动调用

堆区:何时delete何时调用

注意

先构造的后析构、后构造的先析构

只要显性定义析构函数,系统不会在默认定义析构函数

必须显性定义析构函数的情况

析构函数的作用,就是释放掉已消亡的对象的空间,并且一个类中只能有一个析构函数

当类中有指针时,需要必须手动定义析构函数,将指针所指向的空间释放

拷贝构造函数

功能

用已有的类对象给另一个类对象初始号,使用时,系统自动调用

格式

类名 (类名 &other) //需要一个其他对象的引用作为参数 { 函数体; }

使用场景

1、使用已有的类对象初始化新的类对象

2、类对象作为函数参数时,也会调用拷贝

3、类对象作为函数的返回值

必须显性定义拷贝构造函数的场景(涉及指针的拷贝)

深拷贝:类中的指针成员,不指向同一片空间,但是指向空间的内容是相同的。

浅拷贝:类中的指针成员,指向同一片空间(在被析构时,该空间会被释放两次)

注:

1、如果自己实现拷贝构造函数,需要使用初始化列表

Person (Person &a):age(a.age),high(a.high) { cout << "Person的拷贝构造函数" << endl; } };

2、形参不会调用拷贝构造函数,因为形参是一个引用没有自己的地址,使用的就是目标的地址

Person show(Person &ptr1) //形参不会调用拷贝构造函数,因为形参是一个引用没有自己的地址,使用的就是目标的地址 //Person show(Person ptr1) { cout << &ptr1 << endl; return ptr1;//返回值会调用拷贝 构造函数 }

相关思维导图模板

title: 2024-11-8未命名文件 tags: 影像诊断与手术后符合率统计与分析报告鱼骨图思维导图

树图思维导图提供 title: 2024-11-8未命名文件 tags: 影像诊断与手术后符合率统计与分析报告鱼骨图 在线思维导图免费制作,点击“编辑”按钮,可对 title: 2024-11-8未命名文件 tags: 影像诊断与手术后符合率统计与分析报告鱼骨图  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f19c198bf7435acf7735ee5051a89d7b

流程化上架操作思维导图

树图思维导图提供 流程化上架操作 在线思维导图免费制作,点击“编辑”按钮,可对 流程化上架操作  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f97bd01986010350f781d05268e8f812