gpt4 book ai didi

c++ - 关于const或friendship的使用

转载 作者:行者123 更新时间:2023-11-30 04:08:54 24 4
gpt4 key购买 nike

我正在使用某种“管理器”来存储“上下文”类,在某些情况下我想将此“上下文”传递给其他函数以从中读取数据。

实际上,当管理器将这个“上下文”传递给一个函数时,它传递了一个“const&上下文”,并且我上下文有一些函数声明为 const(用于读取)和其他不是 const 的函数(因为管理器必须更改上下文中的数据)

现在,我问自己,如果我只做私有(private)修改器和给经理友元有什么区别吗?

我想应该是有区别的。我知道,这是一个特例,但对我来说,C++ 仍然有很多魔力。

最佳答案

根据我使用 C++ 的经验,拥有私有(private)修改器并提供友元与拥有公共(public)修改器不提供友元之间的主要区别在于,第二种选择允许您不提供任何信息访问权限,而只是确定。假设您创建了一个名为 Student 的类,它有 2 个子类。普通学生和教师助理。很多时候学生太多,老师很难照顾到一切,所以他会把最好的学生当助教。当程序查看这些学生时,他们应该比普通学生有更多访问学生信息的权限。对于私有(private)修改器和给予友元,您是在说某些信息(例如考试成绩)是私有(private)的,但可能会被助教更改。另一方面,如果您有公共(public)突变器并且没有友元,则普通学生可能会访问该信息并更改成绩。

希望这对您有所帮助。

关于c++ - 关于const或friendship的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21586422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com