怎么访问c
时间: 2024-02-23 11:57:46 浏览: 17
在C++中,派生类可以通过继承基类的保护成员来访问基类的保护成员,也可以通过基类的公有成员函数来访问基类的私有成员。因此,在teacher类的成员函数或友元函数中,可以通过调用基类student的公有成员函数来访问基类的保护成员c。
例如:
```c++
#include<iostream>
using namespace std;
class student {
public:
int a = 100;
private:
int b = 200;
protected:
int c = 300;
};
class teacher : public student {
public:
int A = 100;
void printC() {
std::cout << c << std::endl;
}
};
void func() {
teacher t;
std::cout << t.a << std::endl; //可以访问基类的公有成员a
std::cout << t.A << std::endl; //可以访问teacher类的公有成员A
//std::cout << t.b << std::endl; //编译错误,无法访问基类的私有成员b
//std::cout << t.c << std::endl; //编译错误,无法访问基类的保护成员c
t.printC(); //可以通过调用基类的公有成员函数来访问基类的保护成员c
}
int main() {
func();
return 0;
}
```
在这个例子中,teacher类的成员函数printC调用了基类student的公有成员函数,从而访问了基类的保护成员c。在func函数中,调用了这个成员函数,成功输出了c的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)