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

📄 subject_21940.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:21940 发表者:工藤优作 发表日期:2002-11-21 13:19:44
<br>主题:关于::的问题
<br>内容:为什么有时候直接用API函数时无法使用<BR>而在前面加一个::后就能使了,::到底是什么
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:CDMA2000 回复日期:2002-11-21 13:24:33
<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>
回复者:工藤优作 回复日期:2002-11-21 13:25:48
<br>内容:我查过书,知道是范围分解符号,但分解什么呀<BR>麻烦说具体些,thank u<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>
回复者:小年 回复日期:2002-11-21 13:33:39
<br>内容:个人意见:<BR>API函数任何地方可以调用,代表是全局函数或全局变量,一般可以不用加::,但若当前对象有同名函数,则必须加::以示区别
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-11-21 13:34:45
<br>内容:想直接调用API涵数的话,可以加上::后,会弹出API窗体或自己手工输入后会发现参数不同,这就是API涵数了,不是MFC中的成员涵数。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Norton AntiVirus 回复日期:2002-11-21 13:35:21
<br>内容:在VC中,全局变量不影响局部变量的使用<BR><BR>比如你有一个全局变量int m_nTmp = 1;<BR>你在某个函数内部:<BR>void function()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int m_nTmp = 0;//定义同名的变量<BR>&nbsp;&nbsp;&nbsp;&nbsp;char szTmp[10];<BR>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(szTmp, "%d", m_nTmp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(szTmp);//szTmp = "0"<BR>&nbsp;&nbsp;&nbsp;&nbsp;sprintf(szTmp, "%d", ::m_nTmp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(szTmp);//SzTmp = "1"<BR>}<BR><BR>当你不加::使用时,编译器自动使用局部变量,该变量m_nTmp = 0;<BR>当你加上::m_nTmp,这是m_nTmp = 1;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:CDMA2000 回复日期:2002-11-21 13:36:17
<br>内容:比如下面代码<BR>int p=1;//全局变量<BR>void fun()<BR>{<BR>&nbsp;&nbsp;int p=2;<BR>&nbsp;&nbsp;int a=p;//这里a为2;<BR>&nbsp;&nbsp;int b=::p//这里b为1;<BR>//所以::p便是访问的是全局变量,成为范围分解<BR>&nbsp;&nbsp;但如果没有在该函数体中没有int p=2;这一句<BR>那么::符号可以省掉,访问的自然是全局变量的了<BR>那么这时a和b都为1<BR>}<BR>你说的直接用API函数时无法使用,是应为MFC在一些类中对<BR>API重新包装了,函数名和API的名称一样,当参数不一样<BR>比如:在CWnd中有GetWindowText()成员函数,它就是对<BR>API的函数GetWindowText包装了的,功能一样,但少了一个参数<BR>所以你如果这样<BR>CString str;<BR>GetWindowText(str);<BR>但如果你要调用API的GetWindowText()<BR>那么就应该这样<BR>CString str;<BR>::GetWindowText(this,str);<BR>注意必须用::<BR>但你不用这样去调用<BR>GetWindowText(m_hWnd,str);这样你调用的是成员函数,但参数<BR>是按API的给的,就不对了!<BR>但假设CWnd没有对GetWindowText()包装,那么也可以省掉::<BR><BR><BR><BR><BR>2002-11-21 13:37:28

⌨️ 快捷键说明

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