欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2020/04/30作业

程序员文章站 2024-01-23 22:17:04
...

在子类中赋值父类中的私有成员

#include<iostream>
#include<cstring>
using namespace std;
class person{
    public:
       void set_p(string n,int a,string s){name=n;age=a;sex=s;}
       void display_p()
        {cout<<"name is "<<name<<" age is "<<age<<"sex is"<<sex<<endl;}
    private:
        string name;
        int age;
        string sex;
};
class student:public person
{
    int xh;
    int bj;
    string zy;
    double cj;
    public:        //错误示范如下
   void set_t(string k,int m,string f,int a,int b,string c,double d)
    {person::name=k;person::age=m;person::sex=f;xh=a;bj=b;zy=c;cj=d;}
   void display_s()
    {cout<<person::name<<" "<<person::age<<" "<<person::sex<<" "<<xh<<" "<<bj<<" "<<zy<<cj;}
};
。。。。。。。

2020/04/30作业
这里提示数据为私有数据
就是说父类中的私有数据只能通过父类的函数赋值,子类不能直接访问父类的私有数据
应该为如下

public:
   void set_t(string k,int m,string f,int a,int b,string c,double d)
    {set_p(k,m,f);xh=a;bj=b;zy=c;cj=d;}
   void display_s()
    {display_p();
    cout<<" "<<xh<<" "<<bj<<" "<<zy<<cj;}

于子类中调用父类的set_p函数赋值父类私有数据

调用父辈成员函数直接赋值,无需再声明,不然就会覆盖
2020/04/30作业

相关标签: 错误