⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_35278.htm

📁 vc
💻 HTM
字号:
<p>
序号:35278 发表者:steele 发表日期:2003-04-05 11:02:00
<br>主题:关于静态变量、全局变量与公有变量的问题
<br>内容:只是作用域不同,但可见性似乎没有区别,这是我的理解。我想应该是我没有理解它们之间关键性的区别,请大虾指教。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:xiongli 回复日期:2003-04-05 11:16:21
<br>内容:静态变量分为两种,虽然关键字都是 static<BR>一种是类里面的static member,一种是函数里面的static var.<BR>static变量的作用域不是从程序一开始作用到程序结束.而是从需要使用这个static的时候开始作用到函数结束.也就是说像下面这个<BR>void foo()<BR>{<BR>static int i;<BR>};<BR>如果你不调用foo()的话,这个static就不会在内存中存在.<BR>同时class static member的存取权限也是收到public/private/protected限制的<BR><BR>全局变量跟静态变量不同.他是在main()进入以前就初始化,当main()退出以后才销毁.他的声明期是最长的.同时没有任何访问限制.但要注意的是,对于多个全局变量,你不能控制他们的初始化顺序,比如:<BR>CWnd a;<BR>char b;<BR>CString c;<BR>int main()<BR>{<BR>return 0;<BR>}<BR>里面,你其实不知道a,b,c里面谁现初始化,所以千万不要把一个全局变量当成另外一个全局变量构造函数的参数传递进去.因为你其实不知道他们构造的先后.<BR><BR>对于共有变量,我想他不是上面的类别.不知道你说的公有是不是public:里面的变量.public:定义的是存取权限,比如:<BR>class a<BR>{<BR>public :<BR>int x;<BR>static int b;<BR>};<BR>int a::b;<BR>这里public下面的x是类普通变量,b是类静态变量.public规定的是存取权限
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:steele 回复日期:2003-04-05 16:17:18
<br>内容:再请问大虾三个问题:<BR>1.class a<BR>{<BR>public :<BR>int x;<BR>static int b;<BR>};<BR>“x是类普通变量,b是类静态变量”,在你看来这两种变量有什么本质的区别?<BR>2.上面这个类a中的x变量,其它类的函数可以通过“a::x”访问到x,那么为什么不将x定义成全局变量呢?<BR>3.全局静态变量和普通的全局变量有什么不同?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:syosinsya 回复日期:2003-04-05 16:44:15
<br>内容:小菜鸟先回答个123<BR>1.设 a&nbsp;&nbsp;&nbsp;&nbsp;v1, v2;<BR>&nbsp;&nbsp;&nbsp;&nbsp; v1.x=10;&nbsp;&nbsp;&nbsp;&nbsp;v1.b=5;<BR>&nbsp;&nbsp;则v2.b也是5,但v2.x却不是10<BR><BR>2.首先,这体现了面向对象编程;其次,解决重名问题。<BR><BR>3.设有两个文件f1.cpp, f2.cpp. 在f1.cpp中如下声明外部变量<BR>&nbsp;&nbsp;int&nbsp;&nbsp; i;<BR>&nbsp;&nbsp;static int&nbsp;&nbsp; j;<BR>&nbsp;&nbsp;在f2.cpp中如下声明<BR>&nbsp;&nbsp;extern int&nbsp;&nbsp; i;<BR>&nbsp;&nbsp;extern int&nbsp;&nbsp; j;<BR> 则编译时出现j不能用的错误信息。即全程静态变量只能在自己的文件中使用。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:steele 回复日期:2003-04-05 19:03:25
<br>内容:谢谢两位的精彩回答。我给syosinsya开了另一个主题,请前来领分
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2003-04-05 21:01:49
<br>内容:类似问题论坛中出现多次:<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=22333&amp;forum_id=55<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=20476&amp;forum_id=55<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=17890&amp;forum_id=55<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=8170&amp;forum_id=55<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=26172&amp;forum_id=59<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=6974&amp;forum_id=59<BR>http://www.vchelp.net/cndevforum/subject_view.asp?subject_id=19907&amp;forum_id=52<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-04-05 21:04:53
<br>内容:HOHO, tjhe像个导游.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:steele 回复日期:2003-04-05 21:22:24
<br>内容:向tjhe兄看齐。<BR>即使我成不了专家,也要作一个收藏家。呵呵..........
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2003-04-05 22:47:37
<br>内容:记得前段时间回答过类似的主题,却没找到。<BR>利用论坛的搜索功能得到许多类似的主题,所以建议以后提问前先搜索一下,同时也希望论坛的搜索功能再强大些,如果有人对这些类似主题收集整理就更好了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:李 回复日期:2003-04-05 22:58:56
<br>内容:All are good job!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:steele 回复日期:2003-04-06 09:19:50
<br>内容:tjhe的建议很好,将类似主题收集整理其实是一件很意义的事,我看这需要哪位大侠自告奋勇承担这件事。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -