Re:从零开始的逆向随手记03day

学习资料来自滴水逆向,标题同理,若无内容则无必要笔记

2-C++语言

1 概述
2 封装

带有函数的结构体称为类

3 this指针

编译器默认传入this指针

this指针不占用结构体的宽度

4 构造函数与析构函数
4.1 构造函数
4.2 析构函数
5 继承
6 类成员的访问控制

在struct中所有成员默认的属性是public,而在class中则相反

父类的私有成员是可以被继承的,但是也不能直接访问

7 在堆中创建对象

new的本质是malloc+构造函数

delete的本质就是析构函数+free

8 引用类型

int& ref = x;

引用必须赋初始值,且只能指向一个变量,从一而终

对引用赋值,是对其指向的变量赋值,而不是修改引用本身的值

不想其他人修改引用类型对应引用的值可以使用 const

9 面向对象程序设计之继承与封装

10 面向对象程序设计之多态

虚函数的作用:函数传入的对象是子类就调用子类的,是父类就调用父类的

多态是指让父类的指针有多种形态

没有方法体的函数我们称之为纯虚函数

含有纯虚函数的类被称之为抽象类,不能创建对象

11 虚表

有虚函数时对象的数据宽度就会比其原来多出4个字节,这四个字节我们称之为虚表

每个地址占用4个字节,有几个虚函数,则就有几个地址

12 运算符重载

运算符重栽:...... operator

13 模

14 纯虚函数

抽象类就是定义一种标准

15 对象拷贝
15.1 拷贝构造函数

第二个对象传入的参数是第一对象,这就是默认拷贝析构函数,其本质是内存复制

拷贝构造函数只是会拷贝当前指针成员的值,并不会拷贝指针成员指向的内容, 这种拷贝方式称之为浅拷贝。这种情况下,还将指针指向的内存地址复制过来,并自动申请一块新的内存提供,这种方式称之为深拷贝

如果不需要深拷贝,就不要自己添加拷贝构造函数,因为你添加了拷贝构造函数,那么编译器将不再提供,所有的事情都需要由新添加的函数自己来处理

15.2 重载赋值运算符
16 友元

友元:friend 返回类型 函数名(参数列表)

这种访问是单向的

17 内部类

两者之间不存在什么特殊关系,也无法访问对方的私有成员

18 命名空间

命名空间:命名空间名称::函数\变量\类

假如命名空间内的东西非常多,在代码的首行写using namespace 命名空间名称,想调用可以使用::函数\变量\类

19 static关键字

用static声明的全局变量,只有当前函数能访问

出现在类体外的函数定义不能指定static

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值