社区
C语言
帖子详情
请教:如何防止一个类被其他类继承,类似JAVA中的final修饰符
qfsb_p
2003-05-30 11:04:27
我现在想到的方法有如下几种,但是效果不太理想,请求大家帮忙!
方法一:利用私有构造函数,然后提供public的方法创建对象或者设定友元。
方法二:利用类的嵌套(私有的子类)。
在下抛砖!
...全文
221
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
有感
一些学习
JAVA
的方法及对
JAVA
的认识,初学者必看啊!!!
java
中
抽象
类
的
继承
_
java
抽象
类
继承
关于
java
抽象
类
继承
的搜索结果回答抽象
类
和接口的区别:默认的方法实现抽象
类
可以有默认的方法实现完全是抽象的。接口根本不存在方法的实现。抽象
类
中
可以有已经实现了的方法,也可以有被abstract修饰的方法(抽象方法),因为存在抽象方法,所以该
类
必须是抽象
类
。但是接口要求只能包含抽象方法,抽象方法是指没有实现的方法。所以就不能像抽象
类
那么无赖了,接口就根本不能存在方法的实现。实现 抽象
类
使用ex...
Java
匿名
类
中
使用的局部变量为何要加
final
这几天,在网上找了一些关于
final
的知识,当然并不全面,有的一时也没有很好的理解,先收集起来,理理思路,把不懂的画出来,以便更好地学习……
java
中
的
final
关键字通常的指的是“这是无法改变的”。它可能被做为三种的修饰词.------数据(基本
类
型,对象或者数组),方法(
类
方法、实例方法),
类
。
final
应用于
类
如果
类
被声明为
final
,则表示
类
不能被
继承
,也就是说不能
Java
中
的
final
这几天,在网上找了一些关于
final
的知识,当然并不全面,有的一时也没有很好的理解,先收集起来,理理思路,把不懂的画出来,以便更好地学习……
Java
中
的
final
关键字通常的指的是“这是无法改变的”。它可能被做为三种的修饰词.------数据(基本
类
型,对象或者数组),方法(
类
方法、实例方法),
类
。
final
应用于
类
如果
类
被声明为
final
,则表示
类
不能被
继承
,也就是说不能
Java
开发工程师面试题
java
是单根
继承
体系,不能实现多
继承
,但是可以通过接口模拟多
继承
被
final
修饰的
类
,成员方法,成员变量分别是什么效果? 答:被
final
修饰的
类
不能被
继承
; 被
final
修饰的方法可以
继承
,但不能重写; 被
final
修饰的变量就是
一个
常量,只能被赋值一次。
Java
的四种
修饰符
的访问权限范围:public>protected>default>private 重载和重写...
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章