码迷,mamicode.com
首页 > 其他好文 > 详细

在虚函数的声明的参数列表后加上“=0”就将函数变成了纯虚函数

时间:2014-07-14 20:06:09      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:使用   io   cti   c   amp   程序   

在虚函数的声明的参数列表后加上“=0”就将函数变成了纯虚函数
class Base
{
virtual void function()=0;
}
我们不需要为纯虚函数Base::function()提供任何定义,那些声明了纯虚函数的类就是抽象类。任何试图创建一个抽象类对象的操作都会导致编译器错误。
如果一个派生Base并且重写了Base::function()函数,它就成为了具体的类。
class Derived :public Basae
{
void function();
}
通常将抽象类用作接口声明,这时不需要为该接口声明一个完整的实现,该接口描述了所有派生自该类的对象都应该支持的操作,派生类必须实现这些抽象操作。
class Base
{
public:
virtual void print()=0;
};
class Derived :public Base
{
public:
virtual void print()
{
cout<<"Derived::Derived()\n";
}
~Derived()
{
print();
}
};
int main()
{
Derived D;
Base* ptr=&D;
D.print();
}
运行结果:
Derived::Derived()

Derived::Derived()


第一个Derived::Derived()是通过D直接调用print()时所产生的输出,第二个是在程序结束时调用~Derived()时产生的输出。

虽然我们不可以直接创建抽象类的对象了,但是仍然可以使用指向Base的指针和引用。

比如: Base* ptr= &D;

在虚函数的声明的参数列表后加上“=0”就将函数变成了纯虚函数,布布扣,bubuko.com

在虚函数的声明的参数列表后加上“=0”就将函数变成了纯虚函数

标签:使用   io   cti   c   amp   程序   

原文地址:http://www.cnblogs.com/tiancun/p/3842799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!