我是从事学校编码项目的新手程序员。

问题域如下:

编写与时钟相关的C++程序

  • 定义一个名为Clock的类,该类保存在一个单独的文件中,该文件包括以下成员:
  • 与小时,分钟和秒有关的三个成员变量
  • 一个访问器函数,返回三个变量的值(提示:使用指针)
  • 一个修改器函数,可修改所有变量(提示:使用三个参数)
  • 函数将每个变量加1(提示:三个函数)
  • 重载函数以用户输入的值递增变量(提示:该值是函数的参数)
  • 一个默认的构造函数,将时钟设置为0小时0分0秒
  • 一个重载构造函数,它将时钟设置为给定时间(小时,分钟,秒)
  • 定义第二个类,保存在单独的文件中,包括
  • 静态成员变量
  • 静态成员函数
  • 在以前定义的文件中包含C++代码,以确保一个类不会在主程序
  • 中加载两次
  • 定义一个保存在单独文件中的主程序,该文件
  • 实例化三个对象,一个实例使用Clock的默认构造函数,一个实例使用Clock的重载构造函数,并且一个实例基于第二个类
  • 使用对象来调用两个类中定义的所有函数:
  • 使用多个“cin”语句从用户读取所需的时间,并将这些值用作需要
  • 的相应功能的参数
  • 使用定义的对象之一
  • 仅调用每个函数一次
  • 使用访问器函数在每次修改Clock类
  • 变量的函数调用后打印时间
  • 包含使用第二个类
  • 的静态成员的代码

    我们在类里面做了很多例子,我们可以使用单独的get \ set函数,但这是我们第一次尝试使用单个get函数和指针来做到这一点。坦率地说,我迷路了

    这是我的头文件的内容:
    // default class definition
    #ifndef CLOCK1_H
    #define CLOCK1_H
    
    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    class Clock
    {
    private:
        int hours;
        int minutes;
        int seconds;
    
    public:
        int Clock::getInitialTime();
        int Clock::setClockTime();
        Clock::Clock();             // default constructor
        Clock::~Clock();                // default destructor
    };
    #endif
    

    这是我的源代码文件的内容:
    // function declarations \ main program
    //
    
    #include "stdafx.h"
    #include "Clock1.h"
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int Clock::getInitialTime()
    {
        return hours, minutes, seconds;
    }
    
    //void Clock::setClockTime(int hr,min,sec)
    //{
    //  hours=hr;
    //  minutes=min;
    //  seconds=sec;
    //}
    
    
    // default constructor
    Clock::Clock()
    {
        hours=0;
        minutes=0;
        seconds=0;
    }
    
    // default destructor
    Clock::~Clock()
    {
        cin.get();
        cin.get();
    }
    
    int main()
    {
        Clock defaultObj;
        defaultObj.getInitialTime();
        cout << "The initial time is " << defaultObj.getInitialTime() << endl;
        return 0;
    }
    

    我正在尝试以较小的步骤进行操作,第一个目标是能够输出小时,分钟,秒的初始值。完成此操作后,我可以添加带有其他参数的其他构造函数。

    我的第一个猜测是我需要添加以下内容:

    构造函数:
    将适当的参数添加到默认构造函数
    Clock::Clock(int *hourPrt, int *minutePtr, int *secondPrt)
    

    创建指针
    Clock *hourPtr;
    Clock *minutePtr;
    Clock *secondPtr;
    

    将它们与对象的属性关联
    hourPrt=defaultObj.hours
    minutePtr=defaultObj.minutes
    secondPrt=defaultObj.seconds
    

    getInitialTime函数
    修改方式

    主函数调用
    修改方式

    谁能帮我这个?

    谢谢

    最佳答案

    构造函数不是您需要更改的功能之一。首先编写void Clock::setClockTime(int hours, int minutes, int seconds),这是最简单的。

    还请注意,在类内部时,不要在成员函数前添加类名。

    class Clock
    {
    public:
        Clock::Clock();             // WRONG
        Clock(); // RIGHT way to declare constructor
    };
    

    09-10 01:38
    查看更多