希望大佬帮我解决一下这个问题不是太懂

#include <iostream>
#include <string.h>

using namespace std;
class birthday;
class People
{
public:
    class birthday//people中birthday类的聚集
    {
        public:
        birthday(int y=0,int m=0,int d=0)//构造函数初始化
        {
            year=y;
            month=m;
            day=d;
        }
        birthday(birthday&b)//复制构造函数
        {
            year=b.year;
            month=b.month;
            day=b.day;
        }
        void setbirthday()//生日信息的设置
        {
            int yy,mm,dd;
            cout<<"请输入生日"<<endl;
            cin>>yy>>mm>>dd;
            year=yy;
            month=mm;
            day=dd;
        }
        inline void showbirthday()//生日信息的展示
        {
        cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
        }
        ~birthday(){};
        private:
        int year,month,day;
    };
    void showIF();//显示员工的信息
    People(birthday BD,char num[]=" ",char idnum[]=" ",char sx[]=" ",char nm[]=" ")//初始化people
    {
        Birthday=BD;
        strcpy(name,nm);
        strcpy(id,idnum);
        strcpy(sex,sx);
        strcpy(number,num);
    }
    People();
     People(People&p):Birthday(p.Birthday)
     {
            strcpy(name,p.name);
            strcpy(number,p.number);
            Birthday=p.Birthday;
            strcpy(sex,p.sex);
            strcpy(id,p.id);
     }
    ~People(){};
private:
    char name[11];
    char number[7];
    char sex[3];
    char id[16];
    birthday Birthday;

};
inline void People::showIF()//展示信息,可能会多次使用设置为内联函数
{
    cout<<"该员工信息如下:"<<endl;
    cout<<"name    number    sex(m/w)    id    birthday"<<endl;
    cout<<"        "<<name<<"  "<<number<<"        "<<sex<<"       "<<id<<"  ";
    Birthday.showbirthday();
}
int main()
{
    People p5[5];
    char num1[7],id1[16],sex1[3],name1[11];
    for(int i=0;i<5;i++)
    {
        People.birthday b1;
        b1.setbirthday();
        cout<<"请输入员工的name:";
        cin>>name1;
        cout<<"请输入员工的number:";
        cin>>num1;
        cout<<"请输入员工的sex(w为女性,m为男性):";
        cin>>sex1;
        cout<<"请输入员工的id:";
        cin>>id1;
        People p[i](b1,num1,id1,sex1,name1);//对P1对象进行初始化
    }
    for(int i=0;i<5;i++)
    p5[i].showIF();
    return 0;
}

主要是     People.birthday b1; 这一行报错 我是整体都不太清晰 想请问一下大佬们怎么改
c++

1个回答

是对象聚合不是类聚合,C++不是Java,不支持类聚合

#include <iostream>
#include <string.h>

using namespace std;

class birthday//people中birthday类的聚集
{
    public:
    birthday(int y=0,int m=0,int d=0)//构造函数初始化
    {
        year=y;
        month=m;
        day=d;
    }
    birthday(birthday&b)//复制构造函数
    {
        year=b.year;
        month=b.month;
        day=b.day;
    }
    void setbirthday()//生日信息的设置
    {
        int yy,mm,dd;
        cout<<"请输入生日"<<endl;
        cin>>yy>>mm>>dd;
        year=yy;
        month=mm;
        day=dd;
    }
    inline void showbirthday()//生日信息的展示
    {
        cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
    }
    ~birthday(){};
    private:
    int year,month,day;
};
class People
{
public:
    void showIF();//显示员工的信息
    People(birthday BD,char num[]=" ",char idnum[]=" ",char sx[]=" ",char nm[]=" ")//初始化people
    {
        Birthday=BD;
        strcpy(name,nm);
        strcpy(id,idnum);
        strcpy(sex,sx);
        strcpy(number,num);
    }
    People() {};
     People(People&p):Birthday(p.Birthday)
     {
            strcpy(name,p.name);
            strcpy(number,p.number);
            Birthday=p.Birthday;
            strcpy(sex,p.sex);
            strcpy(id,p.id);
     }
    ~People(){};
private:
    char name[11];
    char number[7];
    char sex[3];
    char id[16];
    birthday Birthday;

};
inline void People::showIF()//展示信息,可能会多次使用设置为内联函数
{
    cout<<"该员工信息如下:"<<endl;
    cout<<"name    number    sex(m/w)    id    birthday"<<endl;
    cout<<"        "<<name<<"  "<<number<<"        "<<sex<<"       "<<id<<"  ";
    Birthday.showbirthday();
}
int main()
{
    People p5[5];
    char num1[7],id1[16],sex1[3],name1[11];
    for(int i=0;i<5;i++)
    {
        birthday b1;
        b1.setbirthday();
        cout<<"请输入员工的name:";
        cin>>name1;
        cout<<"请输入员工的number:";
        cin>>num1;
        cout<<"请输入员工的sex(w为女性,m为男性):";
        cin>>sex1;
        cout<<"请输入员工的id:";
        cin>>id1;
        People p(b1,num1,id1,sex1,name1);//对P1对象进行初始化
        p5[i] = p;
    }
    for(int i=0;i<5;i++)
    p5[i].showIF();
    return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

5
Verilog初学者的有关always的一些问题,希望大佬们麻烦解决一下,谢谢
11
关于在linux下安装mysql时遇到一些问题试了好多方法都不行 希望来个大佬解决一下
1
在Ubuntu14.04安装skyeye,make的时候出现这个错误怎么解决,各位大佬帮帮忙:
2
求大佬帮我分析一下我的汇编程序出现的问题
3
刚学PHP出了个看不懂的错误请大佬帮忙解决下
1
这个题我不太懂,好心的大佬们帮我解答一下
1
希望大佬帮我回答一下 万分感谢
0
顺序存储循环队列 希望大佬帮我回答一下 谢谢谢
1
大佬们帮我看一下这个题 带注释讲解一下 谢谢
0
求大佬解决解决解决springsecurity资源权限缓存问题
4
在vue中使用vue-reosure请求外网的传感器接口,一直请求成功拿不到数据,希望大佬教我下!!!
2
Python大佬进来坐坐,帮帮小白解决一下问题?
2
django项目使用runserver启动以后,127.0.0.1:8000却拒绝连接,大佬帮帮忙
1
能有大佬帮我看一下这段代码问题在哪吗
1
求大佬解决IIS配置问题
2
ant design pro的登录界面中的登录过程实在不太懂,希望大佬们能给讲解讲解。
1
使用latex生成的文件打不开,显示如下图,求大佬帮解决一下
1
类与类之间的吧变量传递问题该怎么解决呢?初始位置的随机设置为什么无法通过编译?希望大佬解释一下
2
大佬们能帮我看看这段代码为什么会显示运行超时吗,感激不尽!
1
有没有写taotao项目的大佬,帮我看看这个错误问题