首頁 >後端開發 >C++ >運算子重載如何在 C 中建立多維數組存取?

運算子重載如何在 C 中建立多維數組存取?

DDD
DDD原創
2024-12-21 07:34:11435瀏覽

How Can Operator Overloading Create Multidimensional Array Access in C  ?

多維數組的重載運算子[][]

[] 運算子可以重載多次,從而允許建立多維數組。對於二維數組,這種重載使您能夠使用 function[row][col] 語法存取元素。

考慮以下範例程式碼:

class ArrayOfArrays {
public:
    ArrayOfArrays() {
        _arrayofarrays = new int*[10];
        for(int i = 0; i < 10; ++i)
            _arrayofarrays[i] = new int[10];
    }

    class Proxy {
    public:
        Proxy(int* _array) : _array(_array) { }

        int operator[](int index) {
            return _array[index];
        }
    private:
        int* _array;
    };

    Proxy operator[](int index) {
        return Proxy(_arrayofarrays[index]);
    }

private:
    int** _arrayofarrays;
};

此類允許您建立二維陣列並使用重載的 [] 運算子存取其元素。例如,您可以編寫:

ArrayOfArrays aoa;
aoa[3][5];

此程式碼將存取 aoa 陣列第 3 行第 5 列的元素。請注意,您必須提供適當的邊界檢查,以確保您不會嘗試存取陣列定義邊界以外的元素。

以上是運算子重載如何在 C 中建立多維數組存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn