2021年2月21日

摘要: 虚函数逆向分析 虚函数的机制 在C++中的类中有虚函数时,编译器会将该类的所有虚函数首地址保存在一张表里面,这张表被称为虚函数地址表,同时会在类中的首四个字节添加一个虚表指针来指向虚函数表的首地址。 分析构造函数可以很清楚的看到: 00F718D0 push ebp 00F718D1 mov ebp 阅读全文
posted @ 2021-02-21 15:37 Sna1lGo 阅读(231) 评论(0) 推荐(0) 编辑
 
摘要: 虚函数内存模型 纯虚函数 在有些情况下,在基类中不对虚函数给出有意义的实现,仅当做统一的变成接口来使用,它的实现留给该基类的派生类去做,这种称为纯虚函数 纯虚函数相当于一个接口模板,一个类中如果定义了纯虚函数,则这个类被称为抽象类,C++规定抽象类不能直接实例化对象 派生类继承父类的纯虚函数后,若给 阅读全文
posted @ 2021-02-21 01:48 Sna1lGo 阅读(173) 评论(0) 推荐(0) 编辑
 
摘要: C++——多态(虚函数) 多态是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。 多态的目的就是为了接口重用,也就是说不管传进来的是什么对象,函数都能通过同一个接口调用到适应各自对象的实现方法。 c++支持编译时多态(静态多态)和运行时多态(动态多态),运算符重载和函数重载就是编译时多态, 阅读全文
posted @ 2021-02-21 00:52 Sna1lGo 阅读(204) 评论(0) 推荐(0) 编辑
 
摘要: C++继承——特殊点 同名成员 当父子有相同的成员的时候,加上作用域::可以来选择访问具体的成员。 同名函数 如果子类中出现父类同名的函数,那么子类会隐藏掉父类的所有同名函数,如果想要访问的话也添加作用域就好了 同名静态成员 静态成员是在类初始化前就初始化,属于类外的东西,静态成员函数只能使用静态成 阅读全文
posted @ 2021-02-21 00:31 Sna1lGo 阅读(67) 评论(0) 推荐(0) 编辑