问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

静态数据成员和静态成员函数在程序中是如何声明和定义的

发布网友 发布时间:2022-06-16 19:21

我来回答

1个回答

热心网友 时间:2023-11-06 19:45

class Foo
{
public:
static int a;
stataic void func();
}

静态数据成员和函数都是在声明前加static

静态成员必须要在类外初始化,无法在构造函数内初始化。新标准的C++也允许在生命静态数据成员的是后直接加等于号进行初始化,但是大部分编译器不支持。所以最保险的办法就是在类定义的外面再写:
int Foo::a = 0;
注意,这时候不需要再static了。

函数则很普通成员函数的声明以及实现没区别,唯一要注意的是,静态函数是没有this指针的,因此不能访问任何非静态的其他成员函数或成员变量,如果要访问需要传递this指针进去,比如
class Foo
{
public:
int a;
static void func(Foo* ptrFoo)
{
a = 0; // 错误!!!a不是静态变量,无法访问!
ptrFoo->a= 0; //正确。
}
void test()
{
// 非静态成员函数调用静态成员函数可以传递this指针,让静态成员函数通过他来访问
// 其他成员函数和成员变量。
Foo::func(this);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
成都汇众益智游戏学院怎么样 为什么苹果手机屏幕老是自动滚上去? roughness test什么意思 国家标准打印纸为每包500张,小雨同学家里新买—包打印 纸,她想练习... 谁知道卡布奇诺含义 卡布奇诺咖啡历史 电脑针式打印纸有哪些规格? 外籍人才招聘 接种甲肝疫苗会出现什么不良反应 中华人民共和国境内的任何人均应接种哪些疫苗 电脑如何@打这个符号? 民国纪念币壹圆值多少钱…… 水瓶座的永久幸运色 抗压能力最强,百折不挠,越挫越勇,总是能够绝处逢生的都有哪些星座? "ch"在英语里发什么音 英语中的ch这个字母组合,分别有哪些发? 微博大家怎样交朋友的? 美容院推荐我说人体有14条经络 好胜好强,越挫越勇,抗压能力极强的星座,分别有哪些? 有艾弗森的详细资料吗? 黑米煎饼的做法,黑米煎饼怎么做好吃,黑米煎饼的家常 高飞:IT?通信?以后只有ICT 计算机科学与信息与通信技术ICT有什么区别 抗压能力最强的四个星座是谁? 我是药学应届毕业生,想问下各位海南中和药业怎么样啊?在那里做临床监察员CRA怎么样 同样是海南中和药业产的恩替卡韦,为什么价格不一样 海南中和药业有限公司的发展方向 海南中和药业有限公司的发展状况 海南中和药业股份有限公司联系电话 哪个星座抗压能力最强十二星座抗压强度排行榜 为什么类的静态数据成员定义在任何函数之外 young的WIFI帐号注册流程是什么? 手机套餐天翼飞young,wifi密码怎么查 抗压能力最强的四个星座女,阳光开朗,洒脱勇敢,是哪些星座? 汽车空调中怠速器的作用是什么? 抗压能力最强的4个星座有哪些? 神武4奶粉养完孩子多久能给大号 神武4电脑版奶粉号怎么养大号 多少岁景区免门票 抗压能力强,在困境中最能彰显不凡的4个星座,是哪4个星座? 红米4更换触摸屏教程 三星手机I9268可以刷小米系统吗 gti9268系统怎样升级 三星I9268一键root谁有?有人教吗,会不会刷成砖头??? 对外界抗压能力强,心理素质好的星座有哪些? 加热管升温后短路是什么问题 P3075+压力管路(电加热PL管)加热器短路到地或开路 太阳能开电加就断电是怎么回事 为什么要考三支一扶 为什么做爱后第三天有褐色液体然后变淡红色