1:静态成员
静态成员可以分为静态数据成员与静态成员函数
1:静态数据成员
假如我们现在有一群人需要计算团购优惠,每创建一个对象(用户),我们的总数就要加一,这时候就可以引入静态数据成员了。
例如
class User{
private:
char ID[20];
char NP[20];
static long count;
};
这是我们创建的一个用户类型,这样每创建一个对象,count就会加1。
如果我们需要对count进行初始化,只能在类声明外,定义
也就是这样
class User{
private:
char ID[20];
char NP[20];
static long count;
};
long User::count=0;
下面是定义静态数据成员需要注意的几个点
1:定义对象时,不会为静态数据成员分配空间。
2:静态数据成员是类中对象共享的数据,为所有类对象共同拥有,相当于类中的全局变量。
3:静态数据成员具有静态生存期,必须在类外对其进行初始化。
4:静态数据成员的作用域为类的作用域,当静态数据成员私有或受保护时,在类外只能通过公有的成员函数进行访问,与全局变量相比,静态数据成员保证了数据的隐藏性和安全性。
看下面代码实例
#include<iostream>
#include<string>
using namespace std;
class User {
private:
char ID[20];
char NP[20];
static long count;
static double discout;
public:
User(const char id[] = "0", const char phone[] = "0")
{
strcpy(ID, id);
strcpy(NP, phone);
count++;
compute();
}
User(const User& u)
{
strcpy(ID,u.ID);
strcpy(NP,u.NP);
coun