类(函数)
树图思维导图提供 类(函数) 在线思维导图免费制作,点击“编辑”按钮,可对 类(函数) 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:a13f0bd799f2452dde6c9ca885209e35
类思维导图模板大纲
与结构体的区别
1、默认权限
类中默认的私有权限
结构体中默认的是公有权限
2、继承方式
结构体的默认继承方式是public
类的默认继承方式是private
类内 类外 子类 public T T T private T F F protected T F T
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: 影像诊断与手术后符合率统计与分析报告鱼骨图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f19c198bf7435acf7735ee5051a89d7b
树图思维导图提供 流程化上架操作 在线思维导图免费制作,点击“编辑”按钮,可对 流程化上架操作 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f97bd01986010350f781d05268e8f812