首页 > 后端开发 > C++ > 同一类的C对象如何访问彼此的私有成员变量?

同一类的C对象如何访问彼此的私有成员变量?

Susan Sarandon
发布: 2024-12-31 07:59:10
原创
402 人浏览过

How Can C   Objects of the Same Class Access Each Other's Private Member Variables?

为什么同一个类的对象可以访问彼此的私有数据?

在 C 中,同一类的对象可以访问彼此的私有数据数据,因为访问控制是基于每个类而不是每个对象进行操作的。这意味着私有数据只能被类外部的对象访问。

例如,考虑以下代码:

class TrivialClass {
public:
  TrivialClass(const std::string& data) : mData(data) {}

  const std::string& getData(const TrivialClass& rhs) const {
    return rhs.mData;
  }

private:
  std::string mData;
};

int main() {
  TrivialClass a("fish");
  TrivialClass b("heads");

  std::cout << "b via a = " << a.getData(b) << std::endl;
  return 0;
}
登录后复制

在此代码中,TrivialClass 有一个私有成员变量 mData 和返回对 mData 的引用的公共成员函数 getData。当对象 a 和 b 创建后,它们都可以通过 getData 函数访问彼此的私有数据。

这是可能的,因为 C 的访问控制基于以下规则:

  • 公共会员可以从任何地方访问。
  • 私人会员只能从内部访问类。
  • 受保护的成员可以从类内部和派生类访问。

由于 mData 是私有成员,因此只能从 TrivialClass 类内部访问它。但是,由于访问控制是按类进行的,因此同一类的对象仍然可以访问彼此的私有成员。

并非所有编程语言都存在这种行为。某些语言(例如 Java)具有真正的每对象访问控制,这意味着同一类的对象不能访问彼此的私有数据。

以上是同一类的C对象如何访问彼此的私有成员变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板