虚类和抽象类是一个意思吗,谢谢了

jessieque 2008-04-15 07:18:26
如题,请帮忙解释一下,谢谢了!
...全文
379 9 打赏 收藏 转发到动态 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnelf 2008-04-16
  • 打赏
  • 举报
回复
含有虚函数(virtual)的类
是虚基类,可以实现多态
抽象类...呵呵
两回事
whvcliker 2008-04-16
  • 打赏
  • 举报
回复
这是两个完全不同的东西:
抽象:是概念级别的
虚拟:是方法

请好好理解一下!!
WuBill 2008-04-16
  • 打赏
  • 举报
回复
你说的虚类是指虚基类吧
class A
{
 public:
  void f();
  protected:
  int a;
 };
class B : virtual public A
{
  protected:
  int b;
 };
class C : virtual public A
{
  protected:
  int c:
 };
class D : public B, public C
{
  public:
  int g();
  private:
  int d;
};

引进虚基类的目的是为了解决二义性问题
由于使用了虚基类,使得类A,类B,类C和类D之间关系用图示法表示如下:

A{ f(), a }
/ \
/ \
B{b} C{c}
\ /
\ /
D{g(),d}

WuBill 2008-04-16
  • 打赏
  • 举报
回复
虚类是给儿子用的
抽象类(实际是定义一套接口)是给外人用的
hui12345685 2008-04-16
  • 打赏
  • 举报
回复
不是一个概念!
jieao111 2008-04-15
  • 打赏
  • 举报
回复
你的虚类是虚拟基类吧。。你可以看看虚拟继承那一块的知识,和抽象类不是一个概念
jieao111 2008-04-15
  • 打赏
  • 举报
回复
一个抽象类它不能真正出现在我们的应用程序中所以我们不能为它的
虚拟函数提供有意义的实现它们只是被用作占位符被后来的派生子类型改写它们不希
望被直接调用
fallinleave 2008-04-15
  • 打赏
  • 举报
回复
虚类是啥?纯虚类吧
抽象类,至少包含一个纯虚函数的类就叫做抽象类。

但是如果一个类,所有的成员都是纯虚函数,那么它和一般的抽象类在用法上是有区别的。至少Microsoft给的COM接口定义全部都是仅由纯虚函数构成的类。因此把这样的类定义叫做纯虚类也不算错。

纯虚函数和虚函数的区别在于前者不包含定义,而后者包含函数体。

那么纯虚类就是不包含任何实现(包括成员函数定义和成员变量定义。前者代表算法,后者代表结构)。不包含任何算法和结构的类叫做纯虚类,应该没有问题。


jieao111 2008-04-15
  • 打赏
  • 举报
回复
虚类?头一次听说
相关推荐

63,594

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下