private和protected有什么区别
时间: 2023-09-21 18:04:53 浏览: 111
`private`和`protected`都是C++中的访问控制修饰符,它们用于控制类的成员的访问权限。它们的区别如下:
1. `private`修饰的成员只能被该类内部的成员函数访问,不能被类外部的函数和其他类访问。
2. `protected`修饰的成员可以被该类内部的成员函数和该类的派生类的成员函数访问,但不能被类外部的函数访问。
简单来说,`private`访问控制修饰符用于隐藏类的实现细节,只允许类内部的成员函数来访问这些成员,而`protected`访问控制修饰符则用于允许派生类的成员函数访问基类的成员。
相关问题
c++类中public和private,protected有什么区别
在C++中,public、private和protected是类成员访问修饰符,它们的作用是控制类成员的访问权限。
public成员可以被类的任何成员函数、友元函数、派生类和外部代码访问,而private成员只能被类的成员函数和友元函数访问,无法被派生类和外部代码访问。protected成员和private成员类似,但可以被派生类访问。
因此,public成员表示对外可见,可以被外部调用;private成员表示对外不可见,只能被类内部的函数访问;protected成员表示对外不可见,但可以被派生类访问。
举个例子,假设我们有一个名为Person的类,该类有两个private成员变量name和age,以及一个public成员函数printInfo,代码如下:
```
class Person {
private:
string name;
int age;
public:
void printInfo() {
cout << "Name: " << name << endl;
cout << "Age: " << age << endl;
}
};
```
在这个例子中,name和age是private成员变量,只能在类内部访问。而printInfo是public成员函数,可以被外部代码调用来输出name和age的值。
总之,public、private和protected关键字在C++中用于控制类成员的访问权限,可以保证程序的安全性和封装性。
private和protected的区别
private和protected是面向对象编程语言中用于访问控制的两个关键字。
private:私有成员只能在类的内部访问,不能在类的外部访问。
protected:保护成员可以在类内部和类的子类中访问,不能在类的外部访问。
阅读全文