想学编程的十六夜 2020-05-15 16:25 采纳率: 100%
浏览 336
已采纳

怎样在用一个类调用另外的一个类的对象?我下面这样可以吗?求大佬看看!!

一个time类:

class time
{
private:
    int hour, minute, secend;
public:
    friend class datetime;
    time(){}
    time(int h, int min, int s)
    {
        hour = h; minute = min; secend = s;
    }
    void settime()
    {
        cin >> hour >> minute >> secend;
    }
    int gettimeh(int h)
    {
        return hour;
    }
    int gettimem(int min)
    {
        return minute;
    }
    int gettimes(int s)
    {
        return secend;
    }
    void showtime()
    {
        cout << hour << ":" << minute << ":" << secend << " ";
    }
    ~time(){}
};

一个date类:

class date
{
private:
    int year, month, day;

public:
    friend class datetime;
    date(){}
    date(int y, int m, int ri)
    {
        year = y; month = m; day = ri;
    }
    void setdate()
    {
        cin >> year >> month >> day;
    }
    int getdatey(int y)
    {
        return year;
    }
    int getdatem(int m)
    {
        return month;
    }
    int getdated(int ri)
    {
        return day;
    }
    void showdate()
    {
        cout << year << "/" << month << "/" << day << " ";
    }

    ~date() {}
};

最后一个是datetime类:

class datetime
{   
private:
    time t; date d;
public:
    datetime(){}
    datetime(int y, int m, int ri, int h, int min, int s) :d(y, m, ri), t(h, min, s){}
    datetime(datetime &dt)
    {
        t = dt.t; d = dt.d;
    }
    void setdatetime()
    {
        cout << "输入年月日时分秒" << endl;
        d.setdate(); t.settime();
    }
    void showdatetime()
    {
        cout << "输出:\n";
        d.showdate();t.showtime();
    }
    ~datetime(){}

};

datetime dt1;
我想问下如果我要得到dt1中的秒,怎么办?是这样吗s=dt1.t.gettimes(secend)?
新人刚学C++,求助!!

  • 写回答

1条回答 默认 最新

  • 胖狗子修行之路 2020-05-15 16:43
    关注

    既然你在datetime把time封装了, 那你只能在datetime类中添加方法输出了

        void shows() {
            cout << t.gettimes(100) << endl;
        }
    

    比较奇葩的是 你的get方法怎么还有参数,也没有看到你用它啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd