我是一名新手程序员,从事学校的编码项目。
问题域如下:
写一个与时钟相关的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
};
关于C++:使用单个 get 函数返回与对象相关的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024880/