利用友员求两个类中私有数据的和
时间: 2024-10-19 15:13:02 浏览: 12
Python 类的私有属性和私有方法实例分析
在面向对象编程中,如果两个类中有共同的数据需要相加,并且这些数据是私有的(即不对外公开),通常会通过提供公共接口(如成员函数或者友元函数)来实现这种操作。友元是一种特殊的关系,允许某个非自身的类访问另一个类的私有数据。
例如,在C++中,可以将一个类声明为另一个类的友元,然后在这个友元类中定义一个函数,用于计算两个对象的私有数据之和:
```cpp
class ClassA {
private:
int privateData;
public:
friend class FriendClass; // 定义FriendClass为ClassA的友元
// 其他方法...
};
class ClassB {
private:
int privateData;
public:
friend class ClassA; // 定义ClassA为ClassB的友元
// 其他方法...
};
// 友元类 FriendClass
class FriendClass {
public:
static int sumPrivateData(ClassA a, ClassB b) {
return a.privateData + b.privateData; // 访问并计算两个类的私有数据之和
}
};
```
在这里,`sumPrivateData` 函数可以从外部获取并计算 `ClassA` 和 `ClassB` 的 `privateData` 属性的和,尽管它们是私有的。
阅读全文