在C语言基础上的C++(静态成员与友元与模板)

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值