如何禁止一个方法被派生类改写?

iq199 2004-12-07 10:22:52
有没有类似java中的final修饰符?
...全文
244 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjh1982 2004-12-08
  • 打赏
  • 举报
回复
多引入一层间接
class basebase
{
void foo(){};
};
class base:public basebase
{
void foo(int i){};
};

从base继承的class看不到foo啦!
luchangqing 2004-12-08
  • 打赏
  • 举报
回复
设成私有的成员函数就行了吧
willko 2004-12-08
  • 打赏
  • 举报
回复
C++中没有对应Java对成员函数的final修饰符
只能防止整个类被继承,通过把构造函数声明为private

> 如果构造函数都是私有成员。那怎么创建对象?除非这个类是要其友元函数和友元类中创建
FallenOrc 2004-12-08
  • 打赏
  • 举报
回复
C++中没有对应Java对成员函数的final修饰符
只能防止整个类被继承,通过把构造函数声明为private
孙亖 2004-12-08
  • 打赏
  • 举报
回复
private 啊?
beyondtkl 2004-12-08
  • 打赏
  • 举报
回复
是喔
virtual函數才會被改寫 非virtual是被隱藏...

java的final 也可以禁止類被繼承...
fancard 2004-12-08
  • 打赏
  • 举报
回复
声明为private
  • 打赏
  • 举报
回复
同意 FallenOrc(堕落兽人) .
Rossonero 2004-12-08
  • 打赏
  • 举报
回复
singleton模式就不能被派生啊.
javaprogramlover 2004-12-08
  • 打赏
  • 举报
回复
请问如何在c++里防止一个类被派生呢?
willko 2004-12-08
  • 打赏
  • 举报
回复
5个星太牛了
pomelowu 2004-12-08
  • 打赏
  • 举报
回复
蒋老大说的是。

相信楼主说的是,防止基类的方法被隐藏或者重载。

另外,即使是private virtual的,也能够被重载。
蒋晟 2004-12-08
  • 打赏
  • 举报
回复
Managed C++或者C++/CLI中可以用__sealed或者sealed关键字声明一个类或者方法不能被重载
ywfscu 2004-12-07
  • 打赏
  • 举报
回复
改写??啥子意思,?何为改写?
只有虚拟的函数才会被覆盖,其他继承来的会被隐藏!
jsblcg 2004-12-07
  • 打赏
  • 举报
回复
C++成员函数只要没有virtual修饰就是不可重载的,犹如Java中的final
pomelowu 2004-12-07
  • 打赏
  • 举报
回复
没有

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧