C++逆向之从内存角度看继承和多重继承

C++中,类之间的关系与现实社会非常相似。类的继承与派生是一个从抽象到具体的过程。抽象类没有实例。具体类可以存在实例。
指向父类对象的指针除了可以操作父类对象外,还能操作子类对象,指向子类对象的指针不能操作父类对象。
如果强制将父类对象的指针转化为子类对象的指针

1
CDerive *pDerive = (CDerive *)&base; //base为父类对象,CDerive继承自base

这条语句虽然可以编译通过,但是存在潜在的危险。

C++逆向之虚函数

虚函数是面向对象程序设计的关键组成部分。上一篇介绍构造函数和析构函数识别方法。对于具有虚函数的类而言,构造函数和析构函数识别流程更加简单。而且,在类中定义了虚函数后,如果没有提供默认的构造函数,编译器必须提供默认的构造函数。