注册 登录
MOD中国同盟社 返回首页

编程爱好者 http://www.modchina.com/?25792 [收藏] [复制] [分享] [RSS] 空间主要记录一些AMXX代码

日志

什么是抽象类?鸟是实类,神鸟就是抽象类!鸟只是神鸟的一个物种。 ...

热度 3已有 517 次阅读2011-3-27 21:09 |个人分类:VC++转载

抽象类:就是包含有未定义的虚函数的类,
也就是说只在类中声明了一个抽象类,但没有具体定义,
或者把虚函数定义为virtual void f()=0;这样的形式。注意函数后有一个=0。
因此派生类必须实现这个函数,如果派生类没有实现这个函数,则这个派生类也是抽象的。
 抽象类为什么不能实例化对象:因为抽象类中包含有没有定义的函数,因此不能用抽象类来实例化对象。
但可以声明抽象类的指针指向派生类。 
 示例:
 class A
{
public: virtual void f()=0;
}; //声明一个抽象类
 class B:public A
{
public: 
virtual void f(){cout<<"B"<<endl;}
};
 void main() 
{
A ma; //错误,因为类A是抽象类,含有未实现的函数f()。因此不能创建对象 
B mb;
 A *p=&mb; //可以创建抽象类的指针指向派生类对象。
p->f(); // 结果是B 
}
2

路过
1

鸡蛋

鲜花

握手

雷人

刚表态过的朋友 (3 人)

收藏 分享 转发到开心网 举报

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

回顶部