你应该保留除了班级功能以外的所有数据吗?例如:我有一个std ::整数列表,我需要在其他类中访问。你会如何迭代它,你真的想把它保密吗?
修改
我正在寻找对其他课程中每个元素的个人访问权限。
答案 0 :(得分:5)
真正的问题是为什么你需要迭代“其他类”中的列表。如果您需要在客户端类中执行特定操作,则可以有其他选择:
如果您需要执行定义明确的操作(例如,计算列表中值的平均值),那么您可以将此功能实现为保留列表的类的成员函数。
如果你需要在列表上执行各种操作,那么你可以构建一个通用的迭代器接口,它接受实现各种操作的函数或函子,并返回你需要的任何结果。
这些选项都不要求您公开列表本身。
答案 1 :(得分:0)
是的,我会保密,因为我不想让任何人修改它。然后提供一对const_iterator
来迭代list
。
答案 2 :(得分:0)
是的,我会把它保密。现在我们知道类的成员函数可以访问该类的私有成员,那么为什么不迭代成员函数本身的std::list
呢?
如果你需要在其他类中访问它,那么你需要创建前一个类的对象(通过调用该对象上的一些成员函数来执行插入活动等),然后调用将执行迭代的成员函数活性。
我错过了什么吗?