关于静态数据成员。

时间:2015-10-14 19:16:31

标签: c++ static-members

这是我的头文件,但是我不了解静态数据成员的功能,如果我将它们声明为私有或公共输出保持相同。静态数据成员的工作原理。

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;
};

2 个答案:

答案 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时,意味着无论创建了多少个类对象,都只有一个静态成员的副本。它将由该类的所有对象共享。

相关问题