马蓉卷走王宝强钱:私有的纯虚函数

来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 08:07:35
私有的纯虚函数2010-01-25 17:24#include
using namespace std;

class Pepole
{
     public:
     void smart()
     {
         dance();
     }
private:
     virtual void dance() = 0;
};

void Pepole::dance()
{
     cout << "default dance" << endl;
}

class Student:private Pepole
{

};

class StudentGirl:public Student
{
     virtual void dance()
     {
          cout << "grace dance" << endl;
     }
};

int main()
{
        StudentGirl girl;        Pepole& pepole = girl;

        //Student   st;
        //Pepole& p = st;

        //p.dance();

        pepole.smart();

        return 0;
}
执行的结果是:
grace dance

总结:
1,纯虚函数是可以有缺省实现的(也可以没有),但是虚函数必须要有缺省实现,纯虚函数的实现要在类外部写,inline是不可以的。

2,私有的虚函数does work as a polymorphism。

3,纯虚函数在派生类中不一定非要实现,如Studend类,只要Student类不实例化就可以了。