C++ 可以在友元类B中重载类A的运算符吗?
我试图从实验室解决以下问题,它说: 定义一个名为Repository的类,该类具有2个整数专用变量。>类包含一个空构造函数和另一个带2个参数的构造函数。>类中还包括一个显示变量值的>accesor方法。写另一个叫做数学的课程,它是第一个>的朋友。此类包含应用于第一个类中存储的值的基本算术>运算(+、-、*、/)的实现。每个>算术方法都接收>第一个类实例化的对象作为参数 我已经在互联网上搜索了好几个小时了,但我还没有在另一个类中找到任何关于重载类运算符的内容。我了解重载机制,我使用friend函数解决了这个问题,但我仍然在问自己是否可以像上面提到的那样做,如果可以,我想知道如何做。提前谢谢 我试过上面提到的解决办法C++ 可以在友元类B中重载类A的运算符吗?,c++,C++,我试图从实验室解决以下问题,它说: 定义一个名为Repository的类,该类具有2个整数专用变量。>类包含一个空构造函数和另一个带2个参数的构造函数。>类中还包括一个显示变量值的>accesor方法。写另一个叫做数学的课程,它是第一个>的朋友。此类包含应用于第一个类中存储的值的基本算术>运算(+、-、*、/)的实现。每个>算术方法都接收>第一个类实例化的对象作为参数 我已经在互联网上搜索了好几个小时了,但我还没有在另一个类中找到任何关于重载类运算符的内容。我了解重载机制,我使用friend函数
所要求的只是实现算术运算。并不是说你必须让他们超负荷工作:
#include <iostream>
class Mathematics;
class Repository
{
friend Mathematics;
private:
int a;
int b;
public:
Repository(int _a, int _b)
:a(_a), b(_b) { }
};
class Mathematics
{
public:
static int add(const Repository &rep)
{
return rep.a + rep.b;
}
};
int main()
{
Repository rep(1, 2);
std::cout << Mathematics::add(rep);
}
#包括
课堂数学;
类存储库
{
数学朋友;
私人:
INTA;
int b;
公众:
存储库(int_a,int_b)
:a(_a),b(_b){}
};
课堂数学
{
公众:
静态整数添加(常量存储库和rep)
{
返回rep.a+rep.b;
}
};
int main()
{
存储库代表(1,2);
STD:你用一个C标签来链接一个问题,但是标记了你的C++。你所发布的实验室问题没有说“另一个类中的重载运算符”。“数学有操作符,是存储库的朋友。<代码>是否可以在A类B类中超载操作符?< /代码> -不,剩下的问题对我来说是个谜。这听起来像是一些可怕的指令。C++功能不需要被分类,因为要澄清事情,我不知道这一个!
#include <iostream>
class Mathematics;
class Repository
{
friend Mathematics;
private:
int a;
int b;
public:
Repository(int _a, int _b)
:a(_a), b(_b) { }
};
class Mathematics
{
public:
static int add(const Repository &rep)
{
return rep.a + rep.b;
}
};
int main()
{
Repository rep(1, 2);
std::cout << Mathematics::add(rep);
}