c++调用函数得到private
时间: 2024-02-09 17:39:57 浏览: 25
在C++中,私有成员只能在类内部访问,因此无法直接从类外部调用私有成员函数。如果您想从类外部调用私有成员函数,可以通过以下两种方法实现:
1. 将该函数声明为公有成员函数:如果您希望从类外部调用某个私有成员函数,可以将该函数声明为公有成员函数。这样,该函数就可以在类外部访问。
2. 使用友元函数:友元函数是指在类中声明的一个函数,该函数可以访问该类的私有成员。如果您想从类外部访问私有成员函数,可以将该函数声明为友元函数。
下面是一个简单示例,演示如何在类外部访问私有成员函数:
```c++
#include <iostream>
class MyClass {
private:
int private_member_;
void private_function_() {
std::cout << "This is a private function." << std::endl;
}
public:
void public_function_() {
std::cout << "This is a public function." << std::endl;
private_function_();
}
friend void friend_function_(MyClass& obj);
};
void friend_function_(MyClass& obj) {
std::cout << "This is a friend function." << std::endl;
obj.private_function_();
}
int main() {
MyClass obj;
obj.public_function_();
friend_function_(obj);
return 0;
}
```
在上面的示例中,private_function_() 是一个私有成员函数,无法从 MyClass 类外部直接访问。但是,public_function_() 是一个公有成员函数,可以在 MyClass 类外部访问。在 public_function_() 中,我们调用了 private_function_()。此外,我们还声明了一个友元函数 friend_function_(),该函数可以访问 MyClass 的私有成员。在 friend_function_() 中,我们再次调用了 private_function_()。输出如下:
```
This is a public function.
This is a private function.
This is a friend function.
This is a private function.
```