gpt4 book ai didi

c++ - + 运算符重载以添加不同的 C++ 类对象

转载 作者:行者123 更新时间:2023-11-27 22:59:29 25 4
gpt4 key购买 nike

我见过很多添加同一类对象的示例。我试图使用运算符重载添加两个不同的类对象。代码:

#include<iostream>
using namespace std;
class B;
class A
{
public:
int x;
A(int t=99)
{
x=t;
}
friend const A operator+( A& m, B& n);
friend ostream& operator<<(ostream& os, const A& c);
};

const A operator+(A& c1,B& c2)
{
A temp;
temp.x = c1.x + c2.y;
return temp;
}
ostream& operator<<(ostream &os, const A& c)
{
os << c.x;
return os;
}


class B
{
public:
int y;
B(int e=90)
{
y=e;
}
friend const A operator+( A& m, B& n);
};

int main()
{
A a,u;
B b;
u=a+b;
cout<<"Value of A+B"<<u;
return 0;
}

当我编译我的代码时它显示错误:

$ g++ operator_overloading.cpp

operator_overloading.cpp: 在函数‘const A operator+(A&, B&)’中:

operator_overloading.cpp:19:21:错误:不完整类型“struct B”的使用无效

operator_overloading.cpp:3:7:错误:‘struct B’的前向声明

我做错了什么??

最佳答案

错误很明显。您已尝试仅使用前向声明来使用 B 的成员。

关于c++ - + 运算符重载以添加不同的 C++ 类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29197977/

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