c++中protected的用法
时间: 2023-11-30 14:04:54 浏览: 67
在C++中,protected是一种访问控制修饰符,用于限制对类成员的访问,具体用法如下:
1. protected成员变量:protected成员变量可以被该类的成员函数以及该类的派生类的成员函数访问,但不能被类的外部函数访问。
```c++
class A{
protected:
int x;
};
class B: public A{
public:
void func(){
x = 10; //可以访问父类的protected成员变量
}
};
int main(){
A obj;
obj.x = 10; //错误:无法访问父类的protected成员变量
B obj;
obj.x = 10; //错误:无法访问父类的protected成员变量
return 0;
}
```
2. protected成员函数:protected成员函数可以被该类的成员函数以及该类的派生类的成员函数访问,但不能被类的外部函数访问。
```c++
class A{
protected:
void func(){
cout << "protected" << endl;
}
};
class B: public A{
public:
void func2(){
func(); //可以访问父类的protected成员函数
}
};
int main(){
A obj;
obj.func(); //错误:无法访问父类的protected成员函数
B obj;
obj.func2(); //可以访问父类的protected成员函数
return 0;
}
```
注意,protected成员可以被派生类访问,但不能被派生类对象访问。因此,在上述示例中,`obj.x`和`obj.func()`均不能访问。
阅读全文