如何创建一个在c ++中将一个数组复制到另一个数组的运算符

Iow*_*a15 1 c++ arrays operator-overloading

我需要创建一个将一个数组中的内容复制到另一个数组的运算符.AKA是一个平等的运营商.我正在考虑以下几点:

    operator=(string array[10][10], string array2[10][10])
    {
        int row = 0; int column = 0;
        for(column=0; column<=9; column++)
        {
            for(row=0; row<=9; row++){
                array2[row][column]=array[row][column];
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我只是不确定运算符声明的语法哪个是我的问题.即使我把上面显示的代码弄错了,我也知道如何编写内部代码.我只是不确定如何写"operator =(string ....)"

Arm*_*yan 9

你不能.有两个原因

  • 数组是内置类型,仅当至少有一个参数是用户定义的类型时,才允许运算符重载
  • operator =是4个运算符之一(以及[],()和 - >),它们必须是它们为1重载的类的成员.数组不是类.

你能做的是

  • 有一个命名函数而不是运算符

  • 将数组包装到一个类中

  • 使用vector<vector<string> >已经有作业(< - 我的投票在这里)

1至于为什么这些必须是成员,你可以看到我的这个问题:强制一些运营商成为成员的理由