如何重載C++中的()和[]運算符?證明一些代碼。 它不會影響編程語言的完整性嗎?在C++中重載(),[]運算符
回答
下面是一個例子:
class Test {
const int size = 128;
int data[size];
public:
Test() {
// allocate memory for data, etc.
}
int& operator[](int index) {
return data[index];
}
};
如果存在一組對象,該怎麼辦?它不會影響本機操作嗎? –
除非您從具有operator []定義的類繼承,否則不存在native []運算符。如果你 – Macondo2Seattle
這只是一個問題,如果你繼承了[]定義的東西。例如。的std ::向量。在這種情況下,你可能不想改變[]的默認行爲。僅僅因爲C++允許你做很多事情,並不意味着你應該做它們:) – Macondo2Seattle
它可以在不影響編程語言的完整性,只是因爲運算符重載只能爲用戶定義類型來進行。在C++中爲內置類型重載運算符是不可能的。你不能用數據指針(也包括數組)來改變[]
的行爲。你不能用函數指針改變()
的行爲。換句話說,C++的核心語言特性不能被重載。
- 1. C++運算符在已重載的運算符中重載
- 2. +運算符重載在C++
- 3. 重載[] []在C++運算符
- 4. C++:運算符重載,運算符+
- 5. 在C++中訪問重載運算符
- 6. 在C++中重載賦值運算符
- 7. 在C++中重載運算符`:=`
- 8. 運算符在C#中重載#
- 9. 運算符在C++中重載
- 10. 在C++中重載間接運算符
- 11. 在C++中重載<<運算符?
- 12. 在c中重載++和 - 運算符#
- 13. 運算符在C++中重載
- 14. '+'運算符在C++中重載
- 15. 在C++中重載bitshift運算符
- 16. 在C++中重載運算符+
- 17. 運算符在C++中重載
- 18. 在C++中重載<<運算符
- 19. 在C++中重載比較運算符
- 20. 在C++中重載新運算符
- 21. 在c#類中重載vb.net&運算符
- 22. 運算符在Visual C++中重載?
- 23. 在C++中重載插入運算符
- 24. 運算符在C++中重載
- 25. 運算符重載C++ - 重載輸出「<<」運算符
- 26. 運算符在C++幫助中重載流提取運算符
- 27. 運算符重載C++
- 28. 運算符重載C++
- 29. 運算符重載C++
- 30. C++重載運算符[]
哪種語言? OOP和C++不是同義詞。 – Yuji
哪種語言?我猜C++ –
對不起,在c + +語言 –