首先:我知道如何编写程序,所以我并不需要在这方面寻求帮助。然而,我会把问题的副本粘贴在下面,以便您了解作业的要求。我的问题是针对如何避免使一切都变成全局变量而提出的。
作业
设计一个名为Date的类,具有存储月、日和年的整数数据成员。该类应该有一个三参数默认构造函数,允许在创建新的日期对象时设置日期。如果用户创建了一个没有传递任何参数的Date对象,或者传递的任何值无效,则应该使用默认值1、1、2001(即2001年1月1日)。该类应该有成员函数以以下格式打印日期:
3/15/10
March 15, 2010
15 March 2010
问题
1)老师已指示我们在代码中避免使用魔术数字,因此第一个问题涉及我对默认构造函数的实现:
// These are outside the class.
#define DEFAULT_MONTH 1
#define DEFAULT_DAY 1
#define DEFAULT_YEAR 2001
// This is inside the class definition.
Date(int month = DEFAULT_MONTH, int day = DEFAULT_DAY, int year = DEFAULT_YEAR);
这样正确吗?
2)该类需要访问一个string
对象数组,其中包含月份名称,以便我可以将其用于显示月份名称而不是月份数的日期输出。我使用了一个数字月份的enum
(将用于switch
)。
const enum MONTH_IDS { JANUARY = 1, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY,
AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER };
const string MONTH_NAMES[NUM_MONTHS] = { "January", "February", "March",
"April", "May", "June", "July", "August", "September", "October",
"November", "December" };
这部分的问题是,你把它们放在哪里? 一些我不能做的事情... 我还不允许使用静态类成员,因为那将在下一章中介绍。我们也没有讲解指针,但我们可以使用引用。
感谢您的帮助! 我想问问老师,但他不在城里,而且作业明天就要交了。