【发布时间】:2015-10-14 19:16:31
【问题描述】:
这是我的头文件,但我不理解静态数据成员的功能,如果我将它们声明为私有或公共,则输出保持不变。静态数据成员如何工作。
class cDate
{
private:
int day;
int month;
int year;
bool valid;
bool validate();
bool IsLeapYear() const;
**static char strMON[12][4];
static char strMONTH[12][10];**
public:
cDate(int d = 1, int m = 1, int y = 2000);
cDate(cDate & src);
~cDate();
void print(int option) const;
void ReadFromKB();
void setDay(int d);
void setMonth(int m);
void setYear(int y);
void setDate(int d, int m, int y);
int getDay() const;
int getMonth() const;
int getYear() const;
};
【问题讨论】:
-
一些指导:使用
std::vector而不是原始数组和指针;使用std::string而不是char的数组;考虑更改命名约定,以便客户端代码读取良好(仅使用day())而不是实现代码读取良好。 -
对于不起作用的代码,请提供一个完整但最小的示例供读者尝试。
-
@Noman 您是否尝试过同时处理多个
cDate实例? -
我有实现文件,其中包含所有函数的实现,但我的问题只是关于静态数据成员,如果我将它们声明为公共或可能是私有的,则对我的输出没有影响。为什么还是一样?
标签: c++ static-members