C++protected
时间: 2024-01-11 21:47:28 浏览: 72
在C++中,`protected`是一种访问控制修饰符,用于限制类的成员变量和成员函数的访问权限。`protected`修饰的成员变量和成员函数可以被该类的派生类访问,但是不能被外部函数或类访问。
例如:
```c++
class A {
protected:
int x;
void func() {
// 可以在类内部或其派生类中访问x
x = 10;
std::cout << "x is " << x << std::endl;
}
};
class B : public A {
public:
void setX() {
// 可以在派生类中访问x并进行修改
x = 20;
std::cout << "x is " << x << std::endl;
}
};
int main() {
A a;
B b;
// a.x = 5; // 错误,x是protected,不能在外部访问
// a.func(); // 错误,func是protected,不能在外部访问
// b.x = 15; // 错误,x是protected,不能在外部访问
// b.func(); // 错误,func是protected,不能在外部访问
b.setX(); // 可以在派生类中访问x并进行修改
return 0;
}
```
在上面的例子中,类`A`中的成员变量`x`和成员函数`func()`都是`protected`。因此,在类`B`中可以访问和修改`x`,并且可以在类`A`或类`B`的成员函数中调用`func()`,但是在外部不能直接访问或调用这些成员。
阅读全文