C++类细节梳理之静态成员

类的静态成员

类的静态成员是类的组成部分但不是任何对象的组成部分,在声明的时候在成员前面加上static将该成员变为静态成员。可以在类的作用域外直接访问静态成员,只需在前面加上类名和::

静态数据成员

静态数据成员具有全局生存周期,类的所有对象共享储存空间。

静态数据成员不能通过构造函数进行初始化,而是必须在类外面定义一次。

class Int
{
    static int num;
	int data;
};

int Int::num = 0;//在类外又定义了一次

静态函数

静态成员函数不属于任何对象,没有this指针,不能直接访问类的非静态成员,只能直接访问类的静态数据或函数成员

 函数当然也为静态函数,与静态数据成员不同的是不用在类外面定义一次,使用时要记得加上类名和::

class Int
{
    static int num;
	int data;
public:
    static int isodd(int n){
        if(n % 2 == 0){
            return 0;
        }
        else{
            return 1;
        }
    }
};

cout << "num " << i1 << " is odd? " << Int::isodd(1) << endl; 
cout << "num " << i2 << " is odd? " << Int::isodd(2) << endl; 

如果未定义静态函数,则会出现以下报错:

cannot call member function 'Int Int::isodd(int)' without object

由于学习不精,文章有不正确的地方望读者指正。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值