c****6 发帖数: 22 | 1 为了方便利用matlab的现有code,我试图重载 ^ 以便我可以在VC里用
0.4^2 这种表达式,
于是我定义了个重载操作符如下
double operator^ (double x, double p)
{
return pow(x,p);
}
但是编译报错,
error C2803: 'operator ^' must have at least one formal parameter of class
type
不明白错在哪里。 |
f*******y 发帖数: 988 | 2 提示不是很清楚么
再说你这个是典型的理解错误,随便一本书上都会告诉你为啥不行的
【在 c****6 的大作中提到】 : 为了方便利用matlab的现有code,我试图重载 ^ 以便我可以在VC里用 : 0.4^2 这种表达式, : 于是我定义了个重载操作符如下 : double operator^ (double x, double p) : { : return pow(x,p); : } : 但是编译报错, : error C2803: 'operator ^' must have at least one formal parameter of class : type
|
k**f 发帖数: 372 | 3 You cannot overload operators for built in types like double. |
f******y 发帖数: 2971 | |
l*****d 发帖数: 359 | |
a****l 发帖数: 8211 | 6 you only need to build a new compiler.
【在 c****6 的大作中提到】 : 为了方便利用matlab的现有code,我试图重载 ^ 以便我可以在VC里用 : 0.4^2 这种表达式, : 于是我定义了个重载操作符如下 : double operator^ (double x, double p) : { : return pow(x,p); : } : 但是编译报错, : error C2803: 'operator ^' must have at least one formal parameter of class : type
|