gpt4 book ai didi

c++ - 将按位和 C++ 重载为非成员函数

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

尝试在 C++ 中将 & 作为非成员函数重载

我的类.h

class myClass
{
public:
myClass(double);
void setSomeValue(double);
double getSomeValue() const{
return someValue;
}
/*...more methods...*/


private:
double someValue;
};

我的类.cpp

myClass::myClass(double someValue){
setSomeValue(someValue);
}
myClass::setSomeValue(double someValue){
this->someValue = someValue;
}
double operator&(myClass &lhs, myClass &rhs){
return lhs.getSomeValue() * rhs.getSomeValue();

}

有人告诉我,通过类 getter 访问类的私有(private)成员,我应该能够拥有一个未声明为友元的非成员函数。但是当我尝试时:

int main(){
myClass A(0.1);
myClass B(0.1);

double test = A & B;
}

我刚收到一条错误消息,指出没有运算符“&”匹配这些操作数。我怎样才能使这项工作/我做错了什么?

最佳答案

我想您没有在主程序中包含 & 运算符的声明。尝试放置

double operator&(myClass &lhs, myClass &rhs);

在你的 myClass.h 文件中。

关于c++ - 将按位和 C++ 重载为非成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963405/

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