作者UNARYvvv (有趣生活)
看板C_and_CPP
标题Re: [问题] class 内的static 变数
时间Sat Apr 22 19:20:58 2006
※ 引述《littleshan (我要加入剑道社!)》之铭言:
: ※ 引述《justinC (无)》之铭言:
: : 有办法透过member function 来存取private static var吗
: : 我编译都会说无法解析 该变数...所以来问问看
: 你要在某一个编译单元内宣告他的实体
: 像这样
: ___ A.h ___
: Class A {
: ...
: static int i;
: void f();
: };
: ___ A.cpp ___
: A::f()
: {
: ...
: }
: int A::i = 0; // 或是用其他的初始值也可以
=====
1F:推 sunkill:记得 static 原本会自重初始为 0 放 class 应该也一样吧 04/22 09:47
2F:推 SHANGOYANYI:没错 static变数预设初始就是0 04/22 15:30
如果是说在 A.cpp 里面那行 int A::i = 0; 的 "= 0;" 可以省略,那没错
但是那行主要功用是要定义 int A::i
这个步骤可是不能少的
只有 include 进 A.h 但是没有实际定义那个 static variable
之後就会造成 linking error
而若要被多个 .cpp 档案使用,又直接可以写在 header 里面的 static variable
则只有 static const variable 可以直接在 class 里面定义了
(可惜 VC6 不行,VC6 的解法跟 non-const static variable 一样)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.70.137.117
3F:推 yoco315:推荐这篇文章 04/22 19:36