[ create a new paste ] login | about

Link: http://codepad.org/q2K2f6zk    [ raw code | output | fork ]

C++, pasted on Apr 29:
#include <iostream>

using namespace std;

class Base {
	int content;
public:	
	Base( int i ) : content( i ) { }
	Base & operator+=( Base const & rhs ) {
		content += rhs.content;
		return (*this);
	}
	int get() const { return content; }
};

struct Derived : public Base { 
	Derived( int i ) : Base( i ) { }
};

Base operator+( Base const &lhs, Base const &rhs ){
	Base result = lhs;
	result += rhs;
	return result;
}

Derived operator+( Derived const &lhs, Derived const &rhs ){
	Derived result = lhs;
	result += rhs;
	return result;
}

ostream &
operator << ( ostream & stream, Base const & rhs ) {
	return stream << rhs.get();
}

int main() {
    
    Base a = 3, b = -4;
    cout << a + b << endl;
    
    Derived c = 7, d = 6;
    cout << c + d << endl;
}


Output:
1
2
-1
13


Create a new paste based on this one


Comments: