C++ 一个类访问另一个类中的私有成员,怎么实现
时间: 2024-02-11 18:04:22 浏览: 93
在C++中,一个类想要访问另一个类中的私有成员,可以通过以下几种方式实现:
1. 使用友元类:在要访问私有成员的类中声明另一个类为友元类,这样该类就可以访问另一个类中的私有成员了。
```c++
class B;
class A {
public:
void foo(B& b); // 声明一个函数,参数为另一个类的对象
};
class B {
private:
int x;
friend void A::foo(B& b); // 声明 A 为友元类
};
void A::foo(B& b) {
std::cout << "B::x = " << b.x << std::endl; // A 类中可以访问 B 类中的私有成员 x
}
```
2. 使用类的公有成员函数:在要访问私有成员的类中定义一个公有成员函数,该函数可以访问私有成员并返回其值,另一个类可以调用该函数来获取私有成员的值。
```c++
class B {
private:
int x;
public:
int get_x() const { return x; } // 定义一个公有成员函数来返回私有成员 x 的值
};
class A {
public:
void foo(B& b) {
std::cout << "B::x = " << b.get_x() << std::endl; // A 类中通过 B 类的公有成员函数来访问私有成员 x 的值
}
};
```
需要注意的是,在使用这些方法时,应该遵循封装的原则,不要随意访问其他类的私有成员,避免破坏程序的结构和安全性。
阅读全文