社区
C++ 语言
帖子详情
虚类和抽象类是一个意思吗,谢谢了
jessieque
2008-04-15 07:18:26
如题,请帮忙解释一下,谢谢了!
...全文
356
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
打赏
举报
回复
虚类?头一次听说
相关推荐
【复习】C++之
抽象类
与接口类
首先,需要知道纯虚函数的意思。 纯虚函数在父类不实现,强制要求子类一定要实现这个函数。 可用于实例化对象的类被称为具体类,也就是子类。 包含纯虚函数的类是
一个
抽象类
,是不能定义对象的。 class CPerson //
抽象类
{ public: virtual void Show()=0; //纯虚函数 }; class CChina :public CPerson //...
C++ 抽象基类
抽象类
通常也叫抽象基类 凡是包含纯虚函数的类都是
抽象类
, 纯虚函数是
一个
类是抽象基类的充分必要条件 纯虚函数===》必然是
抽象类
,
抽象类
====》必然有纯虚函数
纯虚析构函数
纯虚析构函数 编辑 在某些类里声明纯虚析构函数很方便。纯虚函数将产生
抽象类
——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使
一个
类成为
抽象类
,但刚好又没有任何纯虚函数。怎么办?因为
抽象类
是准备被用做基类的,基类必须要有
一个
虚析构函数,纯虚函数会产生
抽象类
,所以方法很简单:在想要成为
抽象类
的类里声明
一个
纯虚析构函数。 这里是
一个
例子: class
纯虚函数
纯虚函数的实现原理: 在虚函数原理的基础上,虚函数表中,虚函数的地址是
一个
有意义的值,如果是纯虚函数就实实在在的写
一个
0。 含有纯虚函数的类被称为
抽象类
含有纯虚函数的类被称为
抽象类
,比如上面代码中的类就是
一个
抽象类
,包含
一个
计算周长的纯虚函数。哪怕只有
一个
纯虚函数,那么这个类也是
一个
抽象类
,纯虚函数没有函数体,所以
抽象类
不允许实例化对象,
抽象类
的子类也可
纯虚析构函数的作用
在某些类里声明纯虚析构函数很方便。纯虚函数将产生
抽象类
——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使
一个
类成为
抽象类
,但刚好又没有任何纯虚函数。怎么办?因为
抽象类
是准备被用做基类的,基类必须要有
一个
虚析构函数,纯虚函数会产生
抽象类
,所以方法很简单:在想要成为
抽象类
的类里声明
一个
纯虚析构函数。 这里是
一个
例子: class awov { public: vir
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-04-15 07:18
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下