C++ 类的静态成员、友员函数

本文介绍了C++中类的静态成员和友员函数的概念及用法。静态成员是类的所有对象共享的,可以在类的外部初始化。静态成员函数不依赖于类的实例,可以直接通过类名调用。友员函数是非成员函数,但可以访问类的private和protected成员,用于在保证封装的同时提高访问效率。
摘要由CSDN通过智能技术生成

我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。
静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化。


假设我们想要统计目前总共创建了几个 Person 类,可以在每个构造函数里面添加一个变量然后递增一次,最后返回那个变量,但是当我们定义了一个 Person 类“Person per1;”我只能知道他里面计数用的变量添加了一次,其它定义的 Person 类里面和他共用的计算变量并不是同一个,所以这里我们可以使用“static”来声明这个变量是静态的,这样他在所有定义的 Person 类中就属于共享的了。用一段代码来了解一下,它用于统计总共创建了几个 Person 类:

include <iostream>
#include <string.h>
#include <unistd.h>

using namespace std;

class Person{

private:
    /* static成员不属于成员函数,而是属于整个类的,这里只是声明有这个数据成员,还需要去分配这个空间 */
    static int cnt; 

    char *name;
    int age;
    char *work;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值