请问一下虚类的定义~
请问虚类是如何定义的呢?这样定义对吗?
virtual class A
{
public:
........
}
若不对,望指教~~,在虚类里能定义实函数吗?如果能,那么和非虚类有什么不同?因为在非虚类中就能定义虚函数
问题点数:20、回复次数:9Top
1 楼xteaj(半桶水)回复于 2004-09-03 21:44:06 得分 5
错了,虚类就是不能有实例的类,含有纯虚函数的类。
class A
{
public:
void print() = 0;//纯虚函数
....
};Top
2 楼xteaj(半桶水)回复于 2004-09-03 21:44:55 得分 0
能定义实函数,只是因为有纯虚函数,所以不能实例化。Top
3 楼dengyl(龙)回复于 2004-09-03 22:02:52 得分 5
虚类带有纯虚函数,一般是做为基类,为从它派生的类指定接口。也就是说,声明了纯虚函数的类就是虚类。(啊,我都没注意过什么虚类,因为它们一般是作为基类,称为虚基类。)
虚基类中可以定义一般的成员函数。但是请注意,我们不能定义出虚类的对象。
请注意纯虚函数和虚函数的关系!纯虚函数是用于指定接口,可以不提供实现,而由其派生类重载来提供实现。(当然,也可以为提供纯虚函数一个实现,作为缺省动作。)
而一般的虚函数要提供实现。
Top
4 楼dc128()回复于 2004-09-03 22:07:58 得分 0
我在我的类里定义了4个纯虚函数,不提供实现,有派生类实现,也定义了一个实函数,在类里对其进行了实现,那么,请问我这个类是不是虚类呢?按照楼上的指点,我定义的这个类可以算实虚基类是吧?Top
5 楼xteaj(半桶水)回复于 2004-09-03 22:16:06 得分 0
OKTop
6 楼UPCC(杂食动物)回复于 2004-09-03 22:28:38 得分 5
class a
{
virtual void t(){};
}
这是一个虚类
class b
{
virtual void t()=0;
}
这是一个抽象类。
两者都存在用virtual修饰符修饰的函数。这前这的函数还要定义,因为虚类还存在实例。
而后者不必定义了,当然也不可以实例化,功能是给子类们定义一个界面。Top
7 楼dc128()回复于 2004-09-04 13:26:31 得分 0
请问,虚类或抽象类里能不能有实函数?Top
8 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2004-09-04 13:44:02 得分 2
当然有可以Top
9 楼willko(珂http://www.willko.cn)回复于 2004-09-04 13:55:54 得分 3
虚基类
class a
{
};
class b : virtual public a
{
};Top




