C++ c+中的继承性+; #包括 #包括 #包括 班主任{ private:char name[50]; 智力年龄; public:void get_name(){ cout

C++ c+中的继承性+; #包括 #包括 #包括 班主任{ private:char name[50]; 智力年龄; public:void get_name(){ cout,c++,inheritance,C++,Inheritance,如果一个学生想要访问Person字段,最简单的方法是使它们受到保护,这样所有派生类的Person都可以访问它们。 另一种方法是使用公共getter/setter方法(您甚至可以将它们设置为受保护的,但此时最好使用受保护的字段),这样所有类都可以查看和设置Person的字段。 事实上,即使变量在基类中声明为private,它也存在于派生类中(学生在任何情况下都是个人,因此必须初始化个人字段)但是她无法访问。A是Student类型的对象,它可以访问protected或public类Person的成员

如果一个学生想要访问Person字段,最简单的方法是使它们受到保护,这样所有派生类的Person都可以访问它们。
另一种方法是使用公共getter/setter方法(您甚至可以将它们设置为受保护的,但此时最好使用受保护的字段),这样所有类都可以查看和设置Person的字段。

事实上,即使变量在基类中声明为private,它也存在于派生类中(学生在任何情况下都是个人,因此必须初始化个人字段)但是她无法访问。

A
Student
类型的对象,它可以访问
protected
public
Person
的成员函数和数据成员。现在回答您的问题,您正在尝试使用class
Person
使用类
Student>对象的函数
这是可能的(作为公共继承),并且由于函数和那些私有数据成员属于同一类(
Person
),因此这些函数可以使用变量


注意:
private
public
protected
成员在同一个类中无效。

student
方法都不能访问
person
类私有成员。这样做会导致编译错误。
age
name
都存在于类
student
insta但是,您永远不会直接访问它们,只能通过公共get/put方法访问。请记住继承是一种“is a”关系。类
student
是一个
person
。因此,当您调用
person
类中定义的成员函数时,它可以访问自己类的私有成员(因为对象是
学生
)为什么你认为私有成员不是继承的?你不能达到的东西和不存在的东西之间有区别。你使用的<代码> IoSturn.H./C>强烈地告诉我你使用的是Turb-C++。你应该知道编译器比旧的多,它是古老的,它不会教你任何关于C++的东西。BH这些特定位(直接继承的访问级别)在过去二十年中没有改变-它们是非常基本的。粗略地说,教Turbo-C++的问题可以分为10%错误,30%现在仍然合法但实践不好,60%缺少现代功能。事实上,访问说明符确实在一个类中有一个函数,但这是相当专业的知识。初学者我们可以忽略这一点。
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class person {
    private: char name[50];
             int age;
    public: void get_name() {
                cout<<"Enter name"<<endl;
                gets(name);
            }
            void put_name() {
                cout<<"Name : ";
                puts(name);
                cout<<endl;
            }
            void get_age() {
                cout<<"Enter age"<<endl;
                cin>>age;
            }
            void put_age() {
                cout<<"Age : "<<age<<endl;
            }
};
class student : public person {
    private : int roll;
    public : void get_roll() {
                cout<<"Enter roll"<<endl;
                cin>>roll;
             }
             void put_roll() {
                cout<<"Roll : "<<roll<<endl;
             }
};
int main() {
    student A;
    A.get_name();
    A.get_roll();
    A.get_age();
    A.put_name();
    A.put_age();
    A.put_roll();
    getch();
    clrscr();
    return 0;
}