一些关于vc的问答
源代码在线查看: subject_20476.htm
序号:20476 发表者:Oldbe=Linuxer 发表日期:2002-11-06 22:25:33
主题:请教C++中类的静态成员函数有什么性质.谢谢!
内容:请教C++中类的静态成员函数有什么性质.谢谢!
返回上页访问论坛
回复者:雷神 回复日期:2002-11-07 00:46:24
内容:关键字static(静态),它保证了局部变量在块结束时不被破坏。static也称延长生存。和全局变量的静态生存期对应的是局部变量缺省的动态生存期。 全局变量是静态的,不可能被定义为动态。全局变量自它的定义之处开始一直到源码结束都有效。若在全局变量的前面加上关键字static,则表示该全局变量拥有文件作用域。 与全局变量相仿,在函数前冠以关键字static可以限制该函数的可见性,使得其余与这个文件相连的文件无法使用它。如果别文件使用了同名的不会发生冲突。
返回上页访问论坛
回复者:Oldbe=Linuxer 回复日期:2002-11-07 12:15:14
内容:谢谢雷神兄!不过我想问的是"类"里面静态成员的性质。
返回上页访问论坛
答案被接受回复者:可爱的溜溜 回复日期:2002-11-07 12:25:50
内容:类中的静态成员变量的性质: 不管类有多少个对象实体,所有对象共享同一个静态成员变量。类中的静态成员函数的性质: 无需声明类的对象就可以调用静态成员函数,静态成员函数中只能操作静态成员。
返回上页访问论坛
回复者:Oldbe=Linuxer 回复日期:2002-11-07 12:38:38
内容:谢谢可爱的溜溜!假如没有产生该类的任何实例, 能否如下用:class MyClass ;XX=MyClass::m_static_var ;YY=MyClass::m_static_func();
返回上页访问论坛
回复者:可爱的溜溜 回复日期:2002-11-07 13:04:34
内容:前边错,后边对。原因你应该清楚:尽管是静态成员变量,但也有封装性,即public,protected,private任然对它有效。在C++里,对静态成员函数才有特殊规定.
返回上页访问论坛
回复者:Oldbe=Linuxer 回复日期:2002-11-07 13:15:00
内容:但是对类的静态成员变量赋初值是MyClass::m_static_var = XX ;就是说在有类的实例之前就可以赋初值了!这如何解释呢?
返回上页访问论坛
回复者:可爱的溜溜 回复日期:2002-11-07 18:28:09
内容:XX=MyClass::m_static_var ;MyClass::m_static_var = XX ;这两句是有区别的,给一个变量赋初值与存取该变量是不同的;第二句只能放在全局空间里才是有效的,放在其它任何地方都是非法的(当该变量位私有类型时)。
返回上页访问论坛
回复者:Oldbe=Linuxer 回复日期:2002-11-07 18:37:30
内容:在全局空间,MyClass::m_static_var = XX ;是对的这就是说在没有MyClass类实例的情况下,MyClass::m_static_var已经分配了内存空间??
返回上页访问论坛