1樓:
.*是c++的類成員函式指標呼叫運算子,是用來呼叫乙個類函式指標的。
舉例:假設有乙個專classa類擁有乙個成員函式void classa::func(int i),則可屬以這麼用:
void (classa::*fp)(int i) // 定義乙個類函式指標。
classa obj;
fp = &classa::func; // 給這個類函式指標賦值
(obj.*fp)(5); // 這麼用,相當於呼叫obj.func(5);
這是乙個很蛋疼的特性,很不好用,有一堆繁瑣繞口的規則,而且在不同編譯器下的支援差異很大。
因此許多開發中並不會去用它,而是使用介面來實現類似的功能,或者用一些實現的較好的**庫來替代。
2樓:匿名使用者
. ,.* ,:: ,? : ,sizeof,typeid
c++語言中什麼運算子不能過載
3樓:小丁創業
c++中絕大bai部分的運算子du允許過載zhi。
不能過載的運算子dao只有5個:
(1)回. (成員訪問運答算符)。
(2).* (成員指標訪問運算子)。
(3)∷(域運算子)。
(4)sizeof(長度運算子)。
(5)?: (條件運算子)。
4樓:匿名使用者
c++中絕大部分的運算子允許過載。
不能過載的運算子只有5個:
. (成員內訪問容
運算子)
.* (成員指標訪問運算子)
∷ (域運算子)
sizeof (長度運算子)
?: (條件運算子)
5樓:匿名使用者
過載抄操作符的限制:
1 並不是所有的
襲操作符都能被過載。除了. ,.* ,:: ,? : ,sizeof,typeid這幾個運算子不能被過載,其他運算子都能被過載
2 過載不能改變該運算子用於內建型別時的函義,程式設計師不能改變運算子+用於兩個int型時的含義。
3 運算子函式的引數至少有乙個必須是類的物件或者類的物件的引用。這種規定可以防止程式設計師運用運算子改變內建型別的函義。
4 過載不能改變運算子的優先順序。
5 過載不能改變運算子的結合律。
6 過載不能改變運算子運算元的個數。比如+需要兩個運算元,則過載的+也必須要有兩個運算元。
6樓:匿名使用者
幾乎全部可以. 不可以的只有4個
:: 作用域操作符
. 點號, 即成員訪問操作符
? : 邏輯操作符
.* 這個一下還真想不起來叫什麼
7樓:苦孩子
有五個. .* :: ?:: sizeof
8樓:匿名使用者
「.」、「::」、「?:」和「sizeof」
c中是什麼運算子,C中是什麼運算子
按位取反,用於2進製運算。析構函式前也有這個符號,但沒有特殊意義。按位取反,類析構函式名前使用 是按位bai取反,或者析構du函式前 至於相反數,怎麼說zhi呢.他是針對於二進dao制而言的內求反,也就是說你不容能用十進位制去理解 比如二進位制1000求反是0111 但轉化為十進位制就行不通,呵呵,...
C 中的自增加運算子,C 運算子過載之自增 自減 運算子
簡單的說 運算子就是變數的內容加1個單位,但究竟1個單位是多少要看實際版定義的變權量的型別 比如 定義int a 0 那麼a 表示在下次使用a時a中存放的變數會變為1,即a 0 1 如果定位為int a b 這裡我們假設b已經經過了定義,為int b 10 此時a中存放的內容為b 0 的位址,我們假...
C 中是什麼操作符,C 中 運算子
這個操作符是兩個操作符組成的,乙個是點 乙個是星 這兩個操作符在 回c 中都有自己的作用,答主要用處為 1 是成員呼叫。2 為取位址處的值.在一起連續使用的情況有很多,例如 class ob ob temp 兩個操作符連在一起被稱為乙個操作符的情況只有一種,就是在成員函式指標的呼叫上。這個操作cop...