#include <iostream>
// Base class
class Number {
protected:
int value;
public:
Number(int _value) : value(_value) {}
virtual void display() const {
std::cout << "Value: " << value << std::endl;
}
virtual void swap(Number& other) {
std::swap(value, other.value);
}
};
// Derived class 1
class NumberA : public Number {
public:
NumberA(int _value) : Number(_value) {}
void display() const override {
std::cout << "NumberA - ";
Number::display();
}
};
// Derived class 2
class NumberB : public Number {
public:
NumberB(int _value) : Number(_value) {}
void display() const override {
std::cout << "NumberB - ";
Number::display();
}
};
int main() {
NumberA numA(5);
NumberB numB(10);
std::cout << "Before swapping:\n";
numA.display();
numB.display();
// Swapping numbers using the base class pointer
Number* ptrA = &numA;
Number* ptrB = &numB;
ptrA->swap(*ptrB);
std::cout << "\nAfter swapping:\n";
numA.display();
numB.display();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: