原文出處:
一兩行以上的成員函式最好被定義在類體之外。這要求乙個特殊的宣告語化來標識一
個函式是乙個類的成員:成員函式名必須被它的類名限定修飾(qualified)。也就是告訴編譯器,這個成員函式在我這類的類域內,直到該成員函式結束。(by the way, 類體就定義了乙個類域,類體外通過::擴充類域吧)比如:
[cpp]view plain
copy
class
vec3 ;
在類體外定義operator+=()時,必須用::來告訴編譯器operator+=()這個成員函式是屬於vec3這個類的。
[cpp]view plain
copy
inline
vec3& vec3::operator+=(
const
vec3&v)
另外,成員訪問操作符(點和箭頭)以及域解析操作符:: 可以被用在程式中來訪問類域
中宣告的成員。
std::
cout << ir << " " << ig<< " " << ib << "\n"; ::
的作用就是告訴編譯器被修飾的成員屬於哪個類(物件):
1.定義時。類體外定義的要用::修飾,不然會當作沒有定義。
2.訪問時。指定編譯器在某個類的類域中查詢某函式,不然有可能找不到。
C 中 運算子 和 運算子
運算子定義在將可空型別分配給非可空型別時返回的預設值。int?c null 若 c 為 null,則 d 為 1,否則把 c 值賦予 d int d c 1 型別名稱後加問號,如 int?i null double?d null bool?b null 可指定可為 null 的 int double...
C 中的 運算子
是運算子中等級最高的,它分為三種 1 global scope 全域性作用域符 用法 name 2 class scope 類作用域符 用法 class name 3 namespace scope 命名空間作用域符 用法 namespace name 他們都是左關聯 left associativ...
C 中的運算子
算術運算子 int a 21 int b 10 int c c a b cout c c endl c a b cout c c endl c a b cout c c endl c a b cout c c endl c a b 取餘運算子 cout c c endl int d 10 c d 自...