Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- class cNumber {
- protected:
- int _value;
- public:
- cNumber(int v = 0) :
- _value{ v } { }
- cNumber operator+(const cNumber& other) {
- cNumber number(other.value() + this->value());
- return number;
- }
- friend std::ostream& operator<<(std::ostream& o, cNumber& n) {
- o << n.value();
- return o;
- }
- virtual int value() const {
- return _value;
- }
- };
- class cAbsNumber : public cNumber {
- public:
- cAbsNumber(int i):
- cNumber(i) { }
- int value() const override {
- if (cNumber::value() < 0)
- return -cNumber::value();
- return cNumber::value();
- }
- };
- int main() {
- cNumber a(-123);
- cNumber b(7);
- cNumber c = (a + b);
- cAbsNumber d(-100);
- cAbsNumber e(123);
- std::cout << c << "\n";
- std::cout << d << "\n";
- std::cout << e << "\n";
- }#include <algorithm>
- #include <iostream>
- class cNumber {
- protected:
- int _value;
- public:
- cNumber(int v = 0) :
- _value{ v } { }
- cNumber operator+(const cNumber& other) {
- cNumber number(other.value() + this->value());
- return number;
- }
- friend std::ostream& operator<<(std::ostream& o, cNumber& n) {
- o << n.value();
- return o;
- }
- virtual int value() const {
- return _value;
- }
- };
- class cAbsNumber : public cNumber {
- public:
- cAbsNumber(int i):
- cNumber(i) { }
- int value() const override {
- if (cNumber::value() < 0)
- return -cNumber::value();
- return cNumber::value();
- }
- };
- int main() {
- cNumber a(-123);
- cNumber b(7);
- cNumber c = (a + b);
- cAbsNumber d(-100);
- cAbsNumber e(123);
- std::cout << c << "\n";
- std::cout << d << "\n";
- std::cout << e << "\n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement