C ++:有效的对象乘法

时间:2017-12-24 20:15:04

标签: c++ arrays oop

假设我有一个我想要添加/乘法/减法等的对象。在这种情况下,我希望有一个逐元素乘法(基本上,我只是运行并将1D数组乘以另一个,但我我想稍后与它进行交互,好像它是一个2D数组)。

这往往是我想写的东西:

D * (A * B * C * ...) * ...

下面,我有一个与之兼容的示例:

struct Matrix{
    double * matrix_arr
    long size;
    long rows;
    long cols;

    ...   

    Matrix elementwise_product(Matrix B){ 
        ... 
        return new_matrix_C;
    } 
}

然后我重载乘法运算符,一切正常。

唯一的问题是我理解复制构造函数是针对value返回的对象调用的,而我正在创建可能很大的对象。

我可以通过在更高的范围内分配内存,并使用预先分配的结果数组执行计算来完成所有操作,但随后我失去了非常需要的D*(A*B*C*...)语法。

我如何获得语法,并避免复制构造函数?

0 个答案:

没有答案