私人班级数据

时间:2010-09-28 06:34:45

标签: c++ stl

你应该保留除了班级功能以外的所有数据吗?例如:我有一个std ::整数列表,我需要在其他类中访问。你会如何迭代它,你真的想把它保密吗?

修改

我正在寻找对其他课程中每个元素的个人访问权限。

3 个答案:

答案 0 :(得分:5)

真正的问题是为什么你需要迭代“其他类”中的列表。如果您需要在客户端类中执行特定操作,则可以有其他选择:

  1. 如果您需要执行定义明确的操作(例如,计算列表中值的平均值),那么您可以将此功能实现为保留列表的类的成员函数。

  2. 如果你需要在列表上执行各种操作,那么你可以构建一个通用的迭代器接口,它接受实现各种操作的函数或函子,并返回你需要的任何结果。

  3. 这些选项都不要求您公开列表本身。

答案 1 :(得分:0)

是的,我会保密,因为我不想让任何人修改它。然后提供一对const_iterator来迭代list

答案 2 :(得分:0)

是的,我会把它保密。现在我们知道类的成员函数可以访问该类的私有成员,那么为什么不迭代成员函数本身的std::list呢?

如果你需要在其他类中访问它,那么你需要创建前一个类的对象(通过调用该对象上的一些成员函数来执行插入活动等),然后调用将执行迭代的成员函数活性。

我错过了什么吗?