当前位置:首页 » 多媒体相关

类为什么能这样访问其成员???


如题:  
  c++数据结构书上有这样的一段程序:  
  string::string(const   string   &ob)  
  {  
          ....  
        .......  
  curlen=ob.curlen;  
  .......  
   
  }  
  其中int   curlen是类对象string   的private   成员。我不太明白为什么在构造函数里  
  ob对象能够直接访问其private成员curlen,当然在非构造函数里这样又不可呢?  
  有那位能帮忙解释一下?  
  谢谢!!!!!  
   
 

推荐阅读

  • 国产手机借力强势传媒资源 [详细内容]
  • Sun开放部分源代码 Java迎来参与时代 [详细内容]
  • 关于Mp3的一点小技巧 [详细内容]
  • 长城电脑行至人事风暴眼 周庚申新政将触发 [详细内容]
  • IBM将公开Cell处理器规格 并发布源代码 [详细内容]
  • 谈谈qd的mmc卡的磁盘碎片整理 [详细内容]
  • 惠普增加打印服务项目 继续完善网上照片服务 [详细内容]
  • 网友回答:
    网友:fireseed

    不是构造也可以啊,类对象的私有成员可以被自己的成员函数所访问。当然也可以被从同一个类实例化的对象所访问。

    网友:ejiue

    非构造函数里,也可以这样访问。  
       
      为什么这样我想有两个原因:  
      1、效率。写成引用就是为了效率,如果还进行函数调用......  
      2、安全性的带来的问题不大。只在本类里访问一个本类变量时允许。

    网友:jack_wq

    成员函数当然可以访问自己的成员了!

    网友:jack_wq

    原因是类的封装!

    网友:ejiue

    想一下多个类变量只有一个函数副本。  
      那么:  
      “类对象的私有成员可以被自己的成员函数所访问。当然也可以被从同一个类实例化的对象所访问”  
      就更加容易理解了。  
      我也是恍然大悟,呵呵。  
       
     

    网友:goodboy1881

    同类型的对象可以访问对方的private成员  
      这是因为访问限制是在类/类型级别上(类的所有实例)的  
      而不是在对象级别上(类的某个特定实例)

    网友:redsunrs

    goodboy1881(三井),讲得很有道理。  
      模板

    为什么c++把访问限制定义在类级别上呢?  
      我觉得是效率和安全的折衷。而不是理所当然的就允许访问。  
       
      请看楼主的这个函数:  
      string::string(const   string   &ob)  
      {  
          curlen=ob.curlen;  
      }  
      为什么要const   string   &ob?  
      难道没有一点不安全感吗?  
       
       
       
       
       
       
       
     

    .

    讨论区

    Login