摘要:
#include <iostream>using namespace std;class Enemy{public: Enemy(int damage = 10) { m_pDamage = new int(damage); } virtual ~Enemy() //定义虚拟析构函数,这儿有必要性,见下 { cout << "m_pDamage deleted\n"; delete m_pDamage; } void Taunt() const { cout << "The enemy says he will figh... 阅读全文
摘要:
多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖(override),或者称为重写。(这里我觉得要补充,重写的话可以有两种,直接重写成员函数和重写虚函数,只有重写了虚函数的才能算作是体现了C++多态性)。而重载则是允许有多个同名的函数,而这些函数的参数列表不同,允许参数个数不同,参数类型不同,或者两者都不同。 多态与非多态的实质区别就是函数地址是早绑定还是晚绑定。如果函数的调用,在编译器编译期间就可以确定函数的调用地址,并生产代码,... 阅读全文