社区
C语言
帖子详情
请教:如何防止一个类被其他类继承,类似JAVA中的final修饰符
qfsb_p
2003-05-30 11:04:27
我现在想到的方法有如下几种,但是效果不太理想,请求大家帮忙!
方法一:利用私有构造函数,然后提供public的方法创建对象或者设定友元。
方法二:利用类的嵌套(私有的子类)。
在下抛砖!
...全文
215
15
打赏
收藏
请教:如何防止一个类被其他类继承,类似JAVA中的final修饰符
我现在想到的方法有如下几种,但是效果不太理想,请求大家帮忙! 方法一:利用私有构造函数,然后提供public的方法创建对象或者设定友元。 方法二:利用类的嵌套(私有的子类)。 在下抛砖!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hookuy
2003-07-07
打赏
举报
回复
实现final类(不允许被派生)
namespace Private{
class NonDerivableHelper
{
NonDerivableHelper() {}
friend class NonDerivable;
};
}
#ifdef NDEBUG
#define FINAL_CLASS
#else
#define FINAL_CLASS : private virtual Private::NonDerivableHelper
#endif
class NonDerivable FINAL_CLASS
{
...
};
yic_sword
2003-07-04
打赏
举报
回复
搞不懂!sealed修饰符不就是用来防止继承的吗?
qfsb_p
2003-05-30
打赏
举报
回复
这两个办法都是从方法一级上进行控制,但是我是想有没有一种办法可以从类的级别上来处理,也就是和java类似的解决思路
耙子
2003-05-30
打赏
举报
回复
第一个方法应该查差不多。
zxi666
2003-05-30
打赏
举报
回复
你的第一种方法为什么说效果不理想?
Zark
2003-05-30
打赏
举报
回复
写成COM组件,除使用aggregate方法,是无法继承的.(大多数人认为aggregate不是继承).
genewujing
2003-05-30
打赏
举报
回复
看一下effective c++上面有介绍!
pzytony
2003-05-30
打赏
举报
回复
up
up
liubear
2003-05-30
打赏
举报
回复
不好办,帮你UP
qfsb_p
2003-05-30
打赏
举报
回复
刚才没有留意,现在仔细想了想,确实有道理,谢谢!
yizhenfeng
2003-05-30
打赏
举报
回复
呵呵,
多谢liu_feng_fly(笑看风云 搏击苍穹 衔日月) 的认可!
liu_feng_fly
2003-05-30
打赏
举报
回复
to qfsb_p:
yizhenfeng的方法是很好的,比你提出的解决方法高明很多,而不是差不多呀
qfsb_p
2003-05-30
打赏
举报
回复
yizhenfeng(一阵风) 和Eagle_118(语夜) 的方法实际和我列出来的差不多,还有没有更好的方案?
5:30结帖!
Eagle_118
2003-05-30
打赏
举报
回复
一种不是很常用的方法:函数中的类是不能继承的
void func()
{
class FinalClass{};
}
yizhenfeng
2003-05-30
打赏
举报
回复
见C++ View第一期:
实现final类(不允许被派生)
namespace Private{
class NonDerivableHelper
{
NonDerivableHelper() {}
friend class NonDerivable;
};
}
#ifdef NDEBUG
#define FINAL_CLASS
#else
#define FINAL_CLASS : private virtual Private::NonDerivableHelper
#endif
class NonDerivable FINAL_CLASS
{
...
};
实现的很漂亮。
JAVA
有感
-
类
可以
继承
一个
抽象
类
,但只能实现多个接口。 6. **
final
关键字:** - 用于定义不可变的变量。 - 一旦被赋值后,其值不能被改变。 - 使用
final
关键字的方法不能被重写。 7. **
继承
与多态:** -
继承
允许...
java
中
抽象
类
的
继承
_
java
抽象
类
继承
抽象
类
中
可以有已经实现了的方法,也可以有被abstract修饰的方法(抽象方法),因为存在抽象方法,所以该
类
必须是抽象
类
。但是接口要求只能包含抽象方法,抽象方法是指没有实现的方法。所以就不能像抽象
类
那么无赖了,...
Java
匿名
类
中
使用的局部变量为何要加
final
这几天,在网上找了一些关于
final
的知识,当然并不全面,有的一时也没有很好的理解,先收集起来,理理思路,把不懂的画出来,以便更好地学习…… ...如果
类
被声明为
final
,则表示
类
不能被
继承
,也就是说不能
Java
中
的
final
这几天,在网上找了一些关于
final
的知识,当然并不全面,有的一时也没有很好的理解,先收集起来,理理思路,把不懂的画出来,以便更好地学习…… ...如果
类
被声明为
final
,则表示
类
不能被
继承
,也就是说不能
Java
开发工程师面试题
java
是单根
继承
体系,不能实现多
继承
,但是可以通过接口...被
final
修饰的变量就是
一个
常量,只能被赋值一次。
Java
的四种
修饰符
的访问权限范围:public>protected>default>private 重载和重写...
C语言
70,020
社区成员
243,265
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章