C中不能被過載的運算子中是什麼運算子高手們幫忙解決

2021-03-03 20:34:14 字數 1523 閱讀 8010

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...