在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、纯虚函数定义. 请注意,纯虚函数应该只有声明,没有具体的定义,即使给出了纯虚函数的定义也会被编译器忽略。 3、抽象类 包含纯虚函数的类称为抽象类。由于抽象类包含了没有定义的纯虚函数,所以不能定义抽象类的对象。 之所以要存在抽象类,最主要是因为它具有不确定因素。我们把那些类中的确存在,但是在父类中无法确定具体实现的成员函数称为纯虚函数。纯虚函数是一种 特殊的虚函数,它只有声明,没有具体的定义。抽象类中至少存在一个纯虚函数;存在纯虚函数的类一定是抽象类。存在纯虚函数是成为抽象类的充要条件。 1 //基类: 2 class A 3 { 4 public: 5 A(); 6 void f1(); 7 virtual void f2(); 8 virtual void f3()=0; 9 virtual ~A(); 10 }; 11 12 //子类: 13 class B : public A 14 { 15 public: 16 B(); 17 void f1(); 18 void f2(); 19 void f3(); 20 virtual ~B(); 21 }; 22 23 //主函数: 24 int main(int argc, char* argv[]) 25 { 26 A *m_j=new B(); 27 m_j->f1(); 28 m_j->f2(); 29 m_j->f3(); 30 delete m_j; 31 return 0; 32 } 33 /* 34 f1()是一个普通的重载. 35 调用m_j->f1();会去调用A类中的f1(),它是在我们写好代码的时候就会定好的.因为f1()不是虚函数,不会动态绑定 36 也就是根据它是由A类定义的,这样就调用这个类的函数. 37 f2()是虚函数. 38 调用m_j->f2();会调用m_j中保存的对象中,对应的这个函数.这是由于new的B对象. 39 f3()与f2()一样,只是在基类中不需要写函数实现. 40 */
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论