gpt4 book ai didi

c++ - 防止两种方法共享相同的代码?

转载 作者:行者123 更新时间:2023-12-01 15:12:51 24 4
gpt4 key购买 nike

在我的 IntMatrix 的 .cpp 文件中类,我写了以下代码:

IntMatrix& IntMatrix::operator+=(int num) {
int matrix_size=size();
for (int i=0;i<matrix_size;i++)
{
data[i]+=num;
}
return *this;
}

如您所见 operator+函数具有完全相同的代码,我该如何防止这种情况并限制代码重复? (我可以用一个调用另一个)

注意:我正在使用 C++11

最佳答案

是的,您可以调用operator+翻转订单:

IntMatrix operator+(int scalar, const IntMatrix &matrix) {
return matrix + scalar; // calls operator+(const IntMatrix &matrix, int scalar)
}

此外,对于 operator+采取 IntMatrix作为第一个参数,您可以按值获取参数,因为您正在制作 IntMatrix 的拷贝反正:
IntMatrix operator+(IntMatrix matrix, int scalar) {
matrix += scalar;
return matrix;
}

关于c++ - 防止两种方法共享相同的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62345460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com