学习记录——day39 C++ Class this指针

一、Class

1、C++ 中的类 Class

C++中的类,是由C++中的结构体演化而来的,只需要将struct改成关键字class,就定义了一个类

C++中类和结构体的区别:

1)默认的权限不同,结构体中默认权限为public,类中默认权限为private

2)默认的继承方式不同,结构体的默认继承方式为public,类的默认继承方式为private

学习记录------day38 C++ bool类型 引用 结构体 堆-CSDN博客

2、定义格式

class 类名

{

public:

功能的成功属性、函数

protected:

受保护的成功属性、函数

prvate:

私有的成功属性、函数

}

3、类的大小

1)一个空的类,大小为1字节,用于占位,如果后期有成员变量加入,会将这1字节分配出去

2)类中的成员函数不占类的大小,运行时才会为成员函数分配内存

3)类中有虚函数,会分配一个虚指针的大小

4)如果该类时虚继承至父类,也会增加一个虚指针的大小

4、类的权限

1)类中的成员属性和成员函数分为不同的权限

public:该权限下的成员,可以在类内、子类中、类外被访问

protected:该权限下的成员,可以在类内、子类中直接被访问,类外不允许被访问

private:该权限下的成员,只能在类内被访问,子类、类外不允许被访问

2)如果没有指定权限,则默认为私有权限

3)一个类中,访问权限可以出现多次,也可以出现在任意地方,一般情况下,我们将同一权限下的成员写到一个关键字下面

4)一个访问权限的范围,是从当前关键字开始到下一个关键字或者整个类的定义结束为止

5)一般情况下,成员属性定义成私有的,成员函数定义成公有的

6)类的访问权限仅限制类外,只要在类里面,无论哪个类对象,都可以直接访问非公共权限的成员

二、this指针

1、this指针,是类的非静态成员函数所拥有的一个隐藏的形参指针,指代对象的起始地址,哪个对象使用this,this就表示哪个对象

2、this指针原型:类名 * const this;

3、使用类对象成员时,即便没有手动调用,系统也会默认使用this指针

4、当成员函数的形参名和成员变量同名时,可以使用this指针进行区分

复制代码
#include <iostream>

using namespace std;

class Rectangle
{
    int height = 0;
    int width = 0;
public:
    bool init_height(int height,int width);
};

bool compace(Rectangle &p0,Rectangle &p1);


bool Rectangle::init_height(int height, int width)
{
    //就近原则 参数自己为自己赋值
    height = height;
    width = width;
    //warning: explicitly assigning value of variable of type 'int' to itself
    
    //this 指针 用于指明 成员属性
    this->width = width;
    this->height = height;
    
    return true;
}

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

5、在拷贝复制函数中,需要返回自身引用时,必须使用this指针

相关推荐
知识分享小能手1 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao4 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾4 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT5 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa5 小时前
HTML和CSS学习
前端·css·学习·html
看海天一色听风起雨落6 小时前
Python学习之装饰器
开发语言·python·学习
speop7 小时前
llm的一点学习笔记
笔记·学习
非凡ghost7 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
ue星空7 小时前
月2期学习笔记
学习·游戏·ue5
萧邀人7 小时前
第二课、熟悉Cocos Creator 编辑器界面
学习