virtual纯虚函数

C++语言为我们提供了一种语法结构,通过它可以指明,一个虚拟函数只是提供了一个可被子类型改写的接口。但是,它本身并不能通过虚拟机制被调用。这就是纯虚拟函数(pure

virtual function)。 纯虚拟函数的声明如下所示:

1	class Query {
2	public:
3	// 声明纯虚拟函数
4	virtual ostream& print( ostream&=cout ) const = 0;
5	// ...
6	};

 
这里函数声明后面紧跟赋值0。
包含(或继承)一个或多个纯虚拟函数的类被编译器识别为抽象基类。试图创建一个抽象基类的独立类对象会导致编译时刻错误。(类似地通过虚拟机制调用纯虚拟函数也是错误的例如)

1	// Query 声明了纯虚拟函数
2	// 所以, 程序员不能创建独立的 Query 类对象
3	// ok: NameQuery 中的 Query 子对象
4	Query *pq = newNameQuery( "Nostromo" );
5	// 错误: new 表达式分配 Query 对象
6	Query *pq2 = newQuery;


 

抽象基类只能作为子对象出现在后续的派生类中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值