最近讀書遇到兩個語法上的問題:
(一)if裡面出現逗號
ex1:
if(assert(p!=NULL), p->foo != bar) //書名:Writing solid code
我自己測試的結果是,只要逗號後面的條件為true,整個if就認為是true,但
我實在無法理解為何要這樣寫?
(二)::的使用
ex:
HINSTANCE hComponent = ::LoadLibrary(name);
...........................................
CREATEFUNCPTR CreateInstance
= (CREATEFUNCPTR)::GetProcAddress(hComponent, "CreateInstance");
//書名: Inside COM
::的用法我知道的如下:
1. std::cout //cout隸屬在std這個namespace下
2. SomeClass::someMemberFunction //SomeMemberFunction隸屬在SomeClass之下
3. ::someGlobalVariable //在區域使用域內,存取相同名稱的全域變數
4. SomeClass::somePublicStaticVariable //在類別外存取public static variable
5. SomeBaseClass::someBaseClassFunction //衍生類別呼叫基本類別的成員函式
6. using SomeBaseClass::someBaseClassFunction //推翻C++對繼承而來的名稱的預設
遮掩行為(effective C++)
在ex裡的例子不符合以上我說的六個用法,::後面接的是函式非變數,所以我實在搞不懂
為什麼要加上::,希望有熱心版友解答一下,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.50.53.228
→
09/20 20:30, , 1F
09/20 20:30, 1F
推
09/20 20:33, , 2F
09/20 20:33, 2F
→
09/20 20:33, , 3F
09/20 20:33, 3F
→
09/20 20:33, , 4F
09/20 20:33, 4F
→
09/20 20:33, , 5F
09/20 20:33, 5F
→
09/20 20:34, , 6F
09/20 20:34, 6F
推
09/20 20:36, , 7F
09/20 20:36, 7F
推
09/20 20:53, , 8F
09/20 20:53, 8F
※ 編輯: selection 來自: 125.227.132.215 (09/20 22:30)
討論串 (同標題文章)