虚函数\纯虚函数

来源:互联网 发布:3m淘宝官方旗舰店 编辑:程序博客网 时间:2024/05/17 22:03
虚函数:
派生类一般会重定义所继承的虚函数,如果派生类没有重定义某个虚函数,则使用基类中定义的版本。
派生类中虚函数的声明必须与基类中的定义方式完全匹配,但有一个例外:返回对基类型的引用或指针的虚函数,派生类中的虚函数可以返回基类型的派生类的指针或引用。
函数在基类中声明为虚函数,它就一直是虚函数,派生类无法改变该函数为虚函数这一事实。派生类重定义虚函数时,可以使用virtual保留字,但不是必须这样做。
虚函数动态绑定必须通过基类类型的引用或指针进行函数调用。
将基类类型的引用或指针绑定到派生类对象,对派生类对象没有影响,对象本身不会改变,仍为派生类对象。
通过引用或指针调用虚函数时,编译器将生成代码,在运行时确定调用那个函数,被调用的是与动态类型相对应的函数。
C++中virtual关键字详解:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.html


纯虚函数:
包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。
实现纯虚函数的方法是在函数原型后加“=0”
virtual void funtion1()=0

________________________________________________
发现下面代码的问题
do {   // ...} while (int ival = get_response());
do...while的循环条件中不能定义变量。do { int ival = get_response(); if (ival == some_value()) break;} while (ival); if (!ival)// ...
do {   int ival = get_response();   if (ival == some_value())   break;} while (ival); if (!ival)// ...
do...while循环中定义的变量作用域只在循环中,不能在do...while语句外使用。
原创粉丝点击