【发布时间】:2016-06-10 21:03:53
【问题描述】:
我想编写一个将两个二维数组相乘的程序。两个数组都是模板类的实例(数组可以是 int、float、double)。是重载运算符 * 和 = 更好,还是编写一个将数组相乘的函数?运算符重载的优缺点是什么?重载会影响程序的性能吗?
【问题讨论】:
标签: c++ arrays templates operator-overloading theory
我想编写一个将两个二维数组相乘的程序。两个数组都是模板类的实例(数组可以是 int、float、double)。是重载运算符 * 和 = 更好,还是编写一个将数组相乘的函数?运算符重载的优缺点是什么?重载会影响程序的性能吗?
【问题讨论】:
标签: c++ arrays templates operator-overloading theory
重载运算符没有任何性能损失。它转换为常规函数调用。运算符重载的优点只是它使您的代码更短。但是,在数组乘法的情况下,我建议使用正确命名的函数,因为向量至少有两种乘法语义——元素乘法和点积,也就是标量乘法。重载的 operator* 会使含义变得模糊。
【讨论】: