CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

如何在C++中创建不可继承的类

楼主zhangdaj(多多)2006-07-02 22:27:06 在 C/C++ / 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

相关问题

关键词

得分解答快速导航

  • 帖主:zhangdaj

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo