CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

求教static和private各有什么优缺点、不同点和注意点???

楼主wupangzi(无本之木)2004-08-01 17:31:01 在 C++ Builder / 基础类 提问

小第,近来看了这两个概念,似乎他们的作用差不多,故来求教! 问题点数:100、回复次数:12Top

1 楼JetKingLau(时差)(亦远亦近)(静坐常思已过 闲谈勿论人非 …………)回复于 2004-08-01 17:42:23 得分 25

静态的函数可以直接用   ClassName::FunName   引用而不需要构造,私有的则必须构造后才能由类的内部函数引用,同时,静态的应该也是公共的。  
   
  其他的,等楼下的开讲……Top

2 楼binbin(破坏分子)回复于 2004-08-01 17:52:31 得分 0

同理,静态的成员变量也是公共的,不需要构建对象便已存在了.Top

3 楼TryToday(超口术生命体)回复于 2004-08-01 23:35:19 得分 15

静态变量就象自己的亲友,什么时候看都是一个人.函数可以一直保存原来的值.  
  私有变量象是汽车的旅客,下一次进去就换人了.每次进入函数都是初始化的值.Top

4 楼dhfly(飞鸿)回复于 2004-08-01 23:53:38 得分 15

static变量属于类,即该类的所有对象都公用一个内存区。  
  比如你设计一个存款类,每个帐户为一个类对象,对每个帐户都有帐号,所以用普通变量。但对于存款利率,所有人都是一样的,只须共用一个,就用static类型。这样当你要改变利率的时候只要改一次,如果定义为非static类型你得对每个帐户都这样。  
   
  private类型用来做信息隐藏,把类外不须用的变量都定义为private类型可以防止误操作。Top

5 楼dhfly(飞鸿)回复于 2004-08-01 23:55:55 得分 0

上面忘记加一句,static属于类,非static属于对象Top

6 楼binbin(破坏分子)回复于 2004-08-02 07:56:45 得分 30

楼上看C++   Primer很认真啊.Top

7 楼wupangzi(无本之木)回复于 2004-08-02 08:26:05 得分 0

先谢谢大哥们的热情,但是小弟还是认为,从作用上讲,他们还是没有什么本质的区别。能不能举个例子,让我明白一下,各自的优缺点呢?Top

8 楼constantine(飘遥的安吉儿)回复于 2004-08-02 08:38:36 得分 15

这样还没有区别?  
  你自己写个例子,然后用其他类调用看看,自己动手你的理解会更好的Top

9 楼tianli_(冤冤相报何时了,何必呢!?)回复于 2004-08-02 08:40:31 得分 0

静态的不用new就能用类名加方法名访问  
  私有的必须new才能访问,并且只能是该类的成员函数访问,子类和该类的实例都不能访问。Top

10 楼JetKingLau(时差)(亦远亦近)(静坐常思已过 闲谈勿论人非 …………)回复于 2004-08-02 09:53:50 得分 0

如果   B   类继承于   A   类,那么   A   的   static   函数及成员在   B   中继续有效,但   A   类的   private   函数和成员就不能在   B   中引用。  
   
  建议楼主自己写代码试验一下,看书和实践都是需要互补的。Top

11 楼binbin(破坏分子)回复于 2004-08-02 10:12:53 得分 0

天啊还没有区别???  
  private的成员在对象构建之前是不存在的,也就是说只能象下面这样:  
  TYourObj   obj;  
  obj.SetPrivMember(1);  
  或者  
  TYourObj   *obj=new   TYourObj;  
  TYourOjb->SetPrivMember(1);  
  在对象定义之前是不能操作其私有变量的,每个对象都有一份该变量的内存实现,  
   
  对于static成员而言,所有的对象共用一块内存实现,而且该内存在没有构建这个类的对象实例时已经存在了,就象全局变量一样.  
  如:  
  TYourObj::StaticMember=1;  
  与全局变量不同的是,static成员也可以是private的,这样就实现了信息隐藏.  
   
  static成员函数与普通成员函数也不一样,它没有隐含的this参数,所以只能访问static成员变量.Top

12 楼wupangzi(无本之木)回复于 2004-08-07 15:59:08 得分 0

谢谢各位大哥的指教!Top

相关问题

  • 请大家说说midas是什么东西啊,他的作用与使用注意事项和优缺点,
  • MSSQL和Oracle的优缺点!
  • VC&C++Builder的优缺点?
  • 关于再论DELPHI的优缺点!!
  • 请比较perl 和php的优缺点!
  • web service有什么优、缺点?
  • 请问VB和。NET的优缺点
  • 请问vc.net与vc6有何优缺点?
  • 送分!送分!!!请讲解一下BEA的WebLogic和IBM的websphere以及其他的WEB应用服务器软件的优、缺点。还有前两者使用过程中应该注意的问题细节!
  • 对托普集团和东软的优缺点比较

关键词

  • 函数
  • 内存
  • 变量
  • tyourobj
  • 成员
  • 对象
  • 私有
  • 静态
  • 类
  • 访问

得分解答快速导航

  • 帖主:wupangzi
  • JetKingLau
  • TryToday
  • dhfly
  • binbin
  • constantine

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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