摘要:
序列化 反序列化 阅读全文
摘要:
当通过指针访问类的成员函数时: 如果该函数是非虚函数:编译器会根据指针的类型找到该函数。 如果该函数是虚函数,并且派生类有同名的函数遮蔽它:编译器会根据指针的指向找到该函数,这就是多态。 对象的内存模型是非常干净的,没有包含任何成员函数的信息,编译器究竟是根据什么找到了成员函数呢? 编译器之所以能通 阅读全文
摘要:
纯虚函数:没有函数体,只有函数声明 抽象类:包含纯虚函数的类 之所以说它抽象,是因为它无法实例化,也就是无法创建对象。 纯虚函数没有函数体,不是完整的函数,无法调用,也无法为其分配内存空间。 抽象类通常是作为基类,让派生类去实现纯虚函数,派生类必须实现纯虚函数才能被实例化。 纯虚函数的主要目的: 抽 阅读全文
摘要:
构造函数不能是虚函数 因为派生类不能继承基类的构造函数,将构造函数声明为虚函数没有意义。 构造函数用于在创建对象时进行初始化工作,在执行构造函数之前对象尚未创建完成,虚函数表尚不存在,也没有指向虚函数表的指针,所以此时无法查询虚函数表,也就不知道要调用哪一个构造函数。 析构函数用于在销毁对象时进行清 阅读全文