c++ private的用法
时间: 2023-09-04 17:06:50 浏览: 66
在 C++ 中,private 是一种访问控制修饰符,它用于限制类的成员函数和变量的访问权限。使用 private 修饰的成员只能在类的内部访问,外部无法访问。
下面是一个示例:
```
class MyClass {
private:
int myPrivateVar;
public:
void setVar(int var) {
myPrivateVar = var;
}
int getVar() {
return myPrivateVar;
}
};
```
在上面的示例中,myPrivateVar 被声明为 private,因此它只能在 MyClass 类的成员函数中访问。setVar() 和 getVar() 函数可以访问并操作 myPrivateVar,但是外部的代码无法直接访问 myPrivateVar。
这种封装的方式可以保护类的内部数据不被外部直接访问和修改,从而提高代码的安全性和可维护性。
相关问题
C++private
private是C++中的一个访问修饰符,用于指定类中的成员(属性或方法)的访问权限。私有成员只能在类的内部访问和修改,外部无法直接访问。
在C++中,通过将成员属性定义为private,可以确保其不会被外界随意修改。例如,在一个Person类中,可以将压岁钱money属性定义为私有成员,只能在类的内部进行调用和修改。
为了在外界访问和修改私有成员,可以为类编写成员函数。对于私有成员money属性,可以编写两个成员函数:setMoney和getMoney。setMoney函数用于设置money的值,但为了安全起见,可能需要增加密码验证。getMoney函数用于获取money的值。
通过private和成员函数的配合使用,可以保护敏感属性,确保其安全性和正确性。
c++调用函数得到private
在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.
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)