今天主要了解了一下C++虚函数和纯虚函数的用法。
C++的虚函数主要是用来实现多态,且多态分为两种,静态和动态。
静态多态,为编译时多态;动态多态,为运行时多态。
静态多态,由函数重载和运算符重载实现。
动态多态,由虚函数实现。
虚函数多态的实现主要是靠虚函数表来实现的。
详细内容参考:http://blog.csdn.net/haoel/article/details/1948051/
而虚函数和纯虚函数的区别在于:
虚函数是为了实现多态,其父类中有相应的实现方法;虚函数实现多态的方式是通过父类指针或者引用可以直接调用子类的函数实现的(只限父类中被子类覆盖的函数,子类中自己独有的函数,父类指针是无法访问的;)
纯虚函数只是为了提供接口,使得父类不能具体化一个实例;
eg:动物是一个父类,其不能直接实例化,其子类如孔雀、熊猫才可以实例化;为了阻止父类实例化既可以将其中的成员函数声明为纯虚函数,这样父类即为一个抽象类,抽象类是不能实例化的。
详细内容参考:http://blog.csdn.net/hackbuteer1/article/details/7558868
在VS2010中debug模式下可以查看内存,debug-》window-》RAM。