重载操作符或使函数重载(C++)

Shi*_*bli 0 c++ operator-overloading

以下哪项更快?

方法1:

int foo (int A, int B) {

    // write equations
}
Run Code Online (Sandbox Code Playgroud)

方法2:

int operator| (int A, int B) {

    // write equations
}
Run Code Online (Sandbox Code Playgroud)

Mag*_*off 8

执行速度没有区别.

选择只是风格和可读性之一.您应该选择能够使用最易理解的代码来帮助进行日常维护.


Pla*_*aHH 6

它们都是一个函数(因此在速度上没有差别),只是一个(运算符)可以使用更"奇特"的语法来调用.

在决定使用两者时,您的问题不应该是速度,而是如果您使用运算符的类型的含义是自然的.当你使用它做一些对读者来说完全令人惊讶的事情时,考虑到他知道操作员通常做什么,那么不要让操作员过载.

(我在这里假设你的意思是你自己的类型而不是int,如果你不知道,你不能在int上重载运算符,重载运算符的参数之一必须是用户定义的类型)