fzh566 2022-04-28 23:50 采纳率: 50%
浏览 21
已结题

为什么嵌套类的内容没被覆盖

问题遇到的现象和发生背景
运行结果及报错内容

没有报错,只是小红的生日无法覆盖掉小明的生日

我的解答思路和尝试过的方法
我想要达到的结果

#include<string>
#include<iostream>
using namespace std;
class Date{
     
private:
    int year;int month;int day;
public:
    Date()
    {cout<<"调用默认的构造函数。"<<endl;}
    Date(int year1,int month1,int day1):year(year1),month(month1),day(day1){}

    void setdate(int year1,int month1,int day1)
    {
        year=year1;
        month=month1;
        day=day1;
            cout<<"year:"<<year<<" month:"<<month<<" day:"<<day<<endl;
    }


    void getdate()
    {
        cout<<"year:"<<year<<" month:"<<month<<" day:"<<day<<endl;
    }

    Date (const Date &a)
    {
    
        year=a.year;month=a.month;day=a.day;

    }

    ~Date()
    {cout<<"Date类析构函数的调用."<<endl;}
};
class Student{
    

private:
    int num;string name;string sex;Date date;
public:
    Student(int num1,string name1,string sex1,int year1,int month1,int day1):num(num1),name(name1),sex(sex1),date(year1,month1,day1){}

    void set(int num1,string name1,string sex1,Date date1)
    {
        num=num1;name=name1;sex=sex1;date=date1;
    }

    void getstudent()
    {
        cout<<"num:"<<num<<endl;
        cout<<"name:"<<name<<endl;
        cout<<"sex:"<<sex<<endl;
    
    }
    
    Student (const Student &d1)
    {
        num=d1.num;name=d1.name;sex=d1.sex;date=d1.date;
    }
    ~Student()
    {
        cout<<"Student析构函数的调用。"<<endl;
    }
    Date get1()
    {return date;}
};
void text01()
{        Student student1(1,"小明","男",2003,4,29);
    
    student1.getstudent();
    student1.get1().getdate();
    student1.get1().setdate(2003,1,5);
    
    student1.set(2,"小红","女",student1.get1());
    
    student1.getstudent();
    student1.get1().getdate();}
int main()
{
     text01();
    return 0;
}

  • 写回答

2条回答 默认 最新

  • Cynhard85 2022-04-29 17:18
    关注

    get1()返回的是一个新生成的临时的 Date 对象,因此调用 setdate(2003,1,5) 改变的只是这个临时对象,并不能改变 student1date 成员变量的值。改为引用可以达到想要的结果:Date& get1()

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月13日
  • 已采纳回答 5月5日
  • 创建了问题 4月28日

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序