社区
C++ 语言
帖子详情
求教:为什么类的静态数据成员要在类体外再声明一次,而静态成员函数不用呢?
letok
2003-08-25 11:36:16
静态成员函数和静态数据成员都是静态的,静态数据成员要在类体外再
声明一次,好像是这时候编译器才给静态数据成员分配内存,但静态成员函数就
不需要呢??
...全文
248
7
打赏
收藏
求教:为什么类的静态数据成员要在类体外再声明一次,而静态成员函数不用呢?
静态成员函数和静态数据成员都是静态的,静态数据成员要在类体外再 声明一次,好像是这时候编译器才给静态数据成员分配内存,但静态成员函数就 不需要呢??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
programhunter
2004-02-13
打赏
举报
回复
问题复杂,不好回答,建议自行参考
《C++程序设计语言》
wangyangcheng
2004-02-12
打赏
举报
回复
I want to know too!`
letok
2003-08-26
打赏
举报
回复
up
xueweizhong
2003-08-25
打赏
举报
回复
因为你说的这种情况下
静态成员函数是 inline的。
关于inline函数如果编译器决定
1:可以inline,那么这个函数就相当于类型安全的宏,
所以只是一种inline替换而已,在编译阶段它就完成了它的使命。
所以不需要额外的声明和定义。
2:如果编译器发现这个函数不能inline,那么这种情况就要稍微复杂一些:
最简单的结果是导致每个包含它的translation-unit都包含一份该函数定义。
为了不违反ONE-DEFINE-RULE, 象gcc的话,采取了一种vague-link的技术。
具体可去它们的网站看一下。
这一部分有点象模板的连接技术实现。
关于非模板类的成员变量,要另外定义一下,是因为它在C++很早就有,需要一种简单
的处理方式: 给它指定一个translation-unit(or cpp)来让编译器给它开辟空间。
我想你知道这些就够了。
一般化之后,事情会变得更复杂。而且并不是每件事情都有道理可讲。
这时我宁愿把这些东西认为是“C++规则”,记住就行了。
letok
2003-08-25
打赏
举报
回复
系统是不是在“这个初始化”时,才给静态数据成员分配内存呢?
为什么静态函数成员在类声明时就分配内存了呢?
idontlikenickname
2003-08-25
打赏
举报
回复
静态数据成员再类定义之外不叫声明,应该是定义并初始化~
letok
2003-08-25
打赏
举报
回复
一般化之后,事情会变得更复杂。而且并不是每件事情都有道理可讲。
这时我宁愿把这些东西认为是“C++规则”,记住就行了。
很有道理,我也知道C++有很多东西都是这样,要弄个水落石出也很麻烦,初学者不需要,但还是忍不住要问问。
我还是有点不明白,是因为inline函数,就分配内存空间了吗???
C++
静态
成员
函数
访问非
静态
成员
下面这种方法需要先创建
类
,并将
类
作为参数传递给
静态
成员
函数
才能访问。 #include iostream> using namespace std; class person { ...
C++
类
的
静态
成员
详细讲解[
静态
成员
变量链接错误]
在C++中,
静态
成员
是属于整个
类
的而不是某个对象,
静态
成员
变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用
静态
成员
变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省...
成员
函数
或友元
函数
做为线程
函数
WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都... 在启动一个线程之前,必须为线程编写一个全局的线程
函数
,这个线程
函数
接受一个32位的LPVOID作为参数,返回一个UINT,线程
函数
的结构为:
求教
: 关于isin
函数
求教
: 关于isin
函数
)欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左...
c++中非静态
函数
不能用
类
名调用,为什么CWnd的
成员
函数
GetDC()可以直接调用啊?
c++中非静态
函数
不能用
类
名调用,为什么CWnd的
成员
函数
GetDC()可以直接调用啊? CDC::Lineto提示 非
静态
成员
引用必须与特定对象相对 还有,为什么CWnd的许多
函数
都可以直接调用? 新手求赐教 ...
C++ 语言
64,642
社区成员
250,606
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章