Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- friend day operator+=(day& dy, product& prod)
- {
- dy.ygl+= prod.Yglevod;
- dy.bel+= prod.Belok;
- dy.gur+= prod.Gur;
- dy.kkal+= prod.Kkal;
- return dy;
- }
- day& operator+=(const product& prod)
- {
- ygl+= prod.Yglevod;
- bel+= prod.Belok;
- gur+= prod.Gur;
- kkal+= prod.Kkal;
- return *this;
- }
- class A;
- class B
- {
- public:
- B& operator +=(const A& a);
- int y;
- };
- class A
- {
- private:
- int x;
- friend B& B::operator +=(const A& a);
- friend B& operator -=(B& b, A& a);
- };
- B& B::operator +=(const A& a)
- {
- y += a.x;
- return *this;
- }
- B& operator -=(B& b, A& a)
- {
- b.y -= a.x;
- return b;
- }
- int main(int argc, const char * argv[])
- {
- B b;
- A a;
- b += a;
- B c = b -= a;
- }
- #include <iostream>
- class B;
- class A
- {
- public:
- friend A & operator +=(A &a, const B &b);
- explicit A(int x = 0) : x(x) {}
- std::ostream & out(std::ostream &os = std::cout) const
- {
- return os << x;
- }
- private:
- int x;
- };
- class B
- {
- public:
- friend A & operator +=(A &a, const B &b);
- explicit B(int y = 0) : y(y) {}
- std::ostream & out(std::ostream &os = std::cout) const
- {
- return os << y;
- }
- private:
- int y;
- };
- A & operator +=(A &a, const B &b)
- {
- a.x += b.y;
- return a;
- }
- int main()
- {
- A a(10);
- (a += B(20)).out() << std::endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement