我的代码看起来像这样:
class A
{
//some code here
}
//Class B contains an array of elements of type A
class B
{
//...
private:
A private_array[1000];
}
// This function gives a score of A.
// For reasons I can't explain now, it
// can't be a method of class A
int score( A& element)
{
//....
}
我想使用std::sort
通过score()
函数对b.private_array
进行排序,但我不能,因为它是私有的(我不想将它公开)。这有什么办法解决吗?
编辑:我解决了。这是我的解决方案:我在B中有两个公共方法begin和end
A* begin()
{
return private_array;
}
A* end()
{
return private_array + 1000;
}
然后我只是将这些方法传递给std::sort。
我想这会解决你的问题。
我们可以访问类的私有数据成员而不使用成员或朋友函数吗?