这是我的头文件,但是我不了解静态数据成员的功能,如果我将它们声明为私有或公共输出保持相同。静态数据成员的工作原理。
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;
};
答案 0 :(得分:0)
静态数据是类变量而不是实例变量;它与修饰符
无关例如
class ABC {
static int a;
int b;
}
现在创建A类的两个对象并赋值
ABC a1 =新ABC(); ABC b1 =新ABC();
所以在这种情况下,a1和b1都有相同的副本' a'因为它属于类并且可共享,所以a1对a' a'进行任何更改。变量也将反映b1对象的变化,反之亦然。
答案 1 :(得分:0)
当您将类的数据成员声明为static时,意味着无论创建了多少个类对象,都只有一个静态成员的副本。它将由该类的所有对象共享。