C++重载操作符的参数个数定义?

YGguang YGguang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
C++中重载操作符 时,发现操作符的参数是有规定的。像<<做为友元函数重载时只能传入两个。虽然想想好像这并没有什么问题?但是想知道谁规定了这个参数个数呢?是编译器吗?细节是怎么做到的呢?

我今天想结合友元成员函数与重载运算符做个试验:

class X;
class Y{
friend std:: ostream & operator <<(Y &y,std::ostream &os) ;
public:
Y(int x){y=x;};
int get(){return y;}
private:
int y;
};
class X{
private:
int x;
public:
X(int m){x=m;};
X(X &y){x=y.get();};
~X(){};
int get(){return x;};
void set(int y){x=y;};
std:: ostream & operator <<(Y &y,std::ostream &os){os<<y.y;return os;};//想通过X类来访问显示Y类的数据
};
int main()
{
X x(1);
Y y=Y(1);
x<<(y,std::cout); //这里没有用友元函数来重载<<操作符,所以相当于调用 x.operator<<(y,std::cout)
return 0;
}



编译结果:二进制“operator <<”的参数太多,所以想请教下这些操作符的参数个数怎么确定下来的,或者有没有什么办法可以让我实现使用友元的办法,让X类显示Y类的数据?
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部
YGguang
C++ Builder 13,871 成员 102,696 内容