首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >static修饰的成员变量及函数

static修饰的成员变量及函数

作者头像
我与梦想有个约会
发布2023-10-20 16:38:34
发布2023-10-20 16:38:34
34500
代码可运行
举报
文章被收录于专栏:jiajia_dengjiajia_deng
运行总次数:0
代码可运行

static成员变量又称为静态成员变量,在多个对象间共享使用,并且static静态变量在初始化时必须在类外初始化,可以直接通过“类名::变量”访问,哪怕是还没有生成对象时一样可以访问,以此看来static成员变量不隶属于某个对象,而隶属于类,只是所有该类的对象都可以使用而已。

另外,静态的成员函数不在于多个对象之间的信息共享,而是在于管理类内的static数据成员,完成对static数据成员的封装。 示例图:

代码语言:javascript
代码运行次数:0
运行
复制
#include 
 
using namespace std;
 
class CStatic
{
public:
CStatic(int l, int w)
{
length = l;
width  = w;
}
static void set_height()
{
// 静态函数操作静态成员,静态函数没有this指针
height = 20;
}
int show_box()
{
return length * width * height;
}
private:
int length;
int width;
static int height;
};
 
// 在类外初始化
int CStatic::height = 0;
 
int main(int argc, char* argv[])
{
CStatic s1(2, 5);
CStatic s2(3, 9);;
 
// s1 对象修改了共享的 height 的值
// s2 对象中 height 的值也同时被修改了
s1.set_height();
cout << s1.show_box() << endl;
cout << s2.show_box() << endl;
 
getchar();
return 0;

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档