gpt4 book ai didi

c++ - 在 C++ 中重载运算符 *

转载 作者:行者123 更新时间:2023-11-28 00:16:44 25 4
gpt4 key购买 nike

我想以这种方式重载运算符*:

#include <iostream>
using namespace std;

class A{
public:
double liczba;

A operator * (int a){
A b;
b.liczba = this->liczba * a;
return b;
}
};


int main(){
A a;
2*a;
return 0;
}

我得到错误,我知道 a*2 不会导致问题,但是如何做 2*a?

最佳答案

你需要声明一个友元运算符:

class A{
public:
double liczba;

A operator * (int a){
A b;
b.liczba = this->liczba * a;
return b;
}

friend A operator*(int a, A & b);// friend operator
};

A operator*(int a, A & b)
{
return b * a;
}

理想情况下,A & b 应该是 const A & b,但是您需要将已经定义的运算符声明为 const 作为好吧。

关于c++ - 在 C++ 中重载运算符 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777801/

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