Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 带[]运算符重载的模板类_C++_Operator Overloading - Fatal编程技术网

C++ 带[]运算符重载的模板类

C++ 带[]运算符重载的模板类,c++,operator-overloading,C++,Operator Overloading,我使用一个模板类 template <class T> class Array { enum {size = 10}; T A[size]; public: T& operator [] (int index) { return A[index]; } }; 一切正常。 我想知道如何从我的程序中调用[]运算符?可以像调用任何其他方法一样调用[]运算符:myArray.operator[]3=5,或者使用常规数组语法:m

我使用一个模板类

template <class T>
class Array
{
    enum {size = 10};
    T A[size];
public:
    T& operator [] (int index)
    {
        return A[index];
    }
};
一切正常。
我想知道如何从我的程序中调用[]运算符?

可以像调用任何其他方法一样调用[]运算符:myArray.operator[]3=5,或者使用常规数组语法:myArray[3]=5。以这种方式调用时,括号中的值是函数的参数。

是否创建数组实例并对其使用[]运算符?数组myArray;myArray[5]=7;在Google上搜索,但我的问题是函数调用在这里是如何工作的?当您编写myArray[3]时,它将调用myArray上的运算符[]方法,参数为3。我不知道该怎么解释。这只是一个普通的方法,可以用特殊的语法调用。如果我有一个函数funcint n,它被称为func10。但这里我们在[]运算符中传递整数。那么这个函数的名称混乱是如何工作的呢?@Nagappa您可以想象,在编译过程中,括号被正常的函数语法替换,然后再发生其他事情。我不认为这是实际发生的事情,但你明白了。myArray[x]->myArray.operator[]x。