如何在C++中创建不可继承的类
在java中可以创建不可继承类,但是在C++中如何创建此中类型的类呢? 问题点数:20、回复次数:9Top
1 楼fdimim(猿莫求愚√))回复于 2006-07-02 22:38:40 得分 0
没这个概念Top
2 楼021850524(吸血鬼牌卫生巾)回复于 2006-07-02 22:59:34 得分 0
你试着把类构造函数声明为private试试.
class A: {
private:
A();
};
class B : public A {
// part of B
};
这样就会产生编译期错误, 即A类不可被继承.Top
3 楼021850524(吸血鬼牌卫生巾)回复于 2006-07-02 23:34:54 得分 0
继续说一下, 然后提供一个构造它对象的静态函数, 比如叫
static A *A::New(args) {
A *self = new A(args);
return self;
}
使用的时候就A *pA = A::New(args);
这种类大多在堆上创建, 类似于symbian中的C类.Top
4 楼lyskyly(浮生三笑)回复于 2006-07-03 08:01:11 得分 0
class NoDerivable
{
private:
NoDerivable(){}
friend class A;
};
class A: virtual private NoDerivable
{
};
class B:public A
{
};
int main()
{
A a;
B b;//error
}Top
5 楼caijize(砂子)回复于 2006-07-03 08:22:24 得分 0
为什么要创建这种类?
有什么用处?Top
6 楼begtostudy(我的CSDN博客:http://blog.csdn.net/begtostudy/)回复于 2006-07-03 11:33:01 得分 0
021850524(吸血鬼牌卫生巾) 说的很好啊
其实类本身就是为了扩展的啊
可以使用Singleton模式创建唯一的对象Top
7 楼racewind()回复于 2006-07-03 13:53:02 得分 0
in java u can create interface,implments it ,and not extends it ,hehe,in cc++ sorry,i don't knownTop
8 楼zhangdaj(多多)回复于 2006-07-03 18:10:59 得分 0
以上的各位都有自己的见解啊
小第在此多谢大哥们的指导了!!!
Top
9 楼csdnseeman(希曼)回复于 2006-07-03 18:35:39 得分 0
将析构函数的virtual去掉,就是告诉使用者不要从该类继承。Top




