请问c++中operator重载函数的参数类型一定是类的类型吗?

问题描述:

定义: int operator +(int a[2][3],int b[2][3]) //其中a,b是二维数组
程序编译失败

定义: matrix operator +(matrix a[2][3],matrix b[2][3]) //其中a,b是类matrix的对象
程序编译成功

请问c++中operator重载函数的参数类型一定是类的类型吗?

没有这个规定的,参数类型可以是C++内建的类型或者是自定义的数据类型,具体的编译失败,还需要看编译器具体报的什么错误

c++标准中并没有这个规定;