2020.11.09 第7课 C++虚函数和多态
一、虚函数和虚函数表
虚函数:
1.virtual 修饰的函数
2.没有虚构造函数
1.空的类占用的内存是1个字节
2.虚函数占用4个字节,无论多少个虚函数,类的内存只增加四个字节
了解内容,如何通过虚函数表的指针去访问函数
类的内存 某个对象的 指针指向 虚函数表 :类似于二维数组
#include <iostream>
using namespace std;
class MM
{
public:
virtual ~MM()
{
cout << "虚析构函数" << endl;
}
virtual void print()
{
cout << name << ":" << age << endl;
}
protected:
string name;
int age;
};
class Boy
{
public:
int age;
virtual void printA() {
cout << "A" << endl; }
virtual void printB() {
cout << "B" << endl; }
virtual void printC() {
cout << "B" << endl; }
protected:
};
typedef void (*PFUN)();
int main()
{
cout << sizeof(Boy) << endl;
Boy boy;
cout << "对象的地址:" << &boy << endl;
cout << "转换对象的地址:" << *(