ja wiem, temat wyglada jak monolog, ale to rozwiazanie jakos mnie nie przekonuje (aczkolwiek dziala:]):
#include <cstdlib>
#include <vector>
#include <iostream>
using std::cout;
using namespace std;
class B{
public:
int a;
friend bool operator==(const B&obb1, const B&obb2);
};
bool operator==(const B& ob1, const B& ob2){
return ob1.a == ob2.a;
}
class A{
public:
vector<B> wektor;
friend bool operator==(const A& obb1, const A&obb2);
};
bool operator==(const A& ob1, const A& ob2){
for(int i=0; i<ob1.wektor.size(); i++)
if(!(ob1.wektor[i] == ob2.wektor[i]))
return false;
return true;
}
int main(){
A a1,a2;
B b1,b2,b3;
b1.a = 1;
b2.a = 2;
b3.a = 3;
a1.wektor.push_back(b1);
a1.wektor.push_back(b3);
a2.wektor.push_back(b2);
bool c = a1 == a2;
cout << c << "\n";
a1.wektor.clear();
a2.wektor.clear();
a1.wektor.push_back(b2);
a2.wektor.push_back(b2);
c = a1 == a2;
cout << c;
return 0;
}