静态成员函数与成员变量

19 篇文章 0 订阅
12 篇文章 0 订阅

C++中静态函数与成员用法简单的小结

详解:静态成员,是属于整个类,而不是属于某一个对象,记住是你定义的那个类,静态成员变量只存储一份部分给与所有对象使用。所以在所有的对象是可以共享的,使用静态成员变量实现了多个对象之间的数据共享且不会暴露隐藏的原则,具有安全性以及节约空间,实在是居家必备。

静态成员声明以及定义时,必须加一个标识符static,使用方法是:<类名>::<静态成员名>。

1. 首先:不能通过类名来调用类的非静态成员函数。

#Include<iostream>

using namespace std;

class CS//类名一般C开头,习惯

{public:

       static void output()

{cout<<"Hello world!"<<endl;} 

void output01()

{{cout<<"hello world!"<<endl;} }

};

void main()

{

CS.output();//可以这样做

CS.output01();//系统会报错,,所以不能通过类名来调用类的非静态成员函数。

}

2.类的对象可以使用静态成员函数和非静态成员函数

#Include<iostream>

using namespace std;

class CS//类名一般C开头,习惯

{public:

       static void output()

{cout<<"Hello world!"<<endl;} 

void output01()

{{cout<<"hello world!"<<endl;} }

};

void main()

{

CS s;

s.output();//正确·

CS.output();//可以这样做

CS.output01();//系统会报错,,所以不能通过类名来调用类的非静态成员函数。

}

3.静态成员函数中不能引用非静态成员

#Include<iostream>

using namespace std;

class CS//类名一般C开头,习惯

{public:

       static void output()

{cout<<"Hello world!"<<endl;cout<<m_01<<endl;} 

void output01()

{cout<<"hello world!"<<endl;} //报错

private:

int m_01=0;

};

void main()

{

CS.output();//可以这样做

CS.output01();//系统会报错,,

}

4.在类的非静态成员函数中使用类的静态成员,但反之则不行。

class CS//类名一般C开头,习惯

{public:

       static void output()

{cout<<"Hello world!"<<endl;cout<<m_01<<endl;} //报错

void output01()

{cout<<"hello world!"<<endl; static void output();} //正确·

private:

int m_01=0;

};

5.在使用静态成员变量前,必须給变量初始化,否则调试无问题,但是编译不成功,所以必须初始化例子:int Point::m_nPointCount = 0;如上也有。

博主博客链接里面有大量的C/C++学习资料以及python等:https://blog.csdn.net/libo_dian/article/details/86649592

当然也欢迎来QQ1458079840咨询,大家多交流,互帮互助。今天是2019年2月14号,情人节,祝大家情人节,,快乐T_T。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值