保护类的成员可以直接通过子类的对象访问吗
时间: 2023-08-13 22:08:35 浏览: 134
java类访问权限与成员访问权限解析
在C++中,保护类成员可以被子类的对象访问。子类继承父类时,可以访问父类的公有成员和保护成员,但无法访问父类的私有成员。子类对象可以通过访问其继承的保护成员来访问父类的保护成员。
例如,假设有一个父类`Animal`,其中有一个受保护的成员变量`age`,和一个子类`Dog`,则`Dog`类可以访问`Animal`类的`age`成员变量。
```
class Animal {
protected:
int age;
};
class Dog : public Animal {
public:
void setAge(int a) {
age = a; // 可以访问父类的受保护成员变量
}
};
int main() {
Dog dog;
dog.setAge(3);
return 0;
}
```
但是,需要注意的是,子类对象只能通过其自身的成员函数或友元函数访问父类的受保护成员,而不能通过父类对象或其他对象来访问。这是因为受保护成员的访问权限仅限于类层次结构内的子类和友元函数。
阅读全文