Inheritance

/* Binary to Octal using Inheritance */
#include<iostream>
using namespace std;

class todecimal {

	/* Private variable; not inheritable */
	int decimal;

	/* Public members; ready for inheritance */
	public:
		todecimal(int binary) {
			int reminder, i = 1;
			decimal = 0;
			while(binary != 0) {
				reminder = binary % 10;
				decimal += reminder * i;
				i *= 2;
				binary /= 10;
			}
	
		}
	
		inline int get_decimal() {
			return decimal;
		}
	
		inline void display_decimal() {
			cout << "Decimal: " << get_decimal() << endl;		
		}

};

/* Inherit parent class into child class using ':' */
/* Private derivation by default */
class tooctal : todecimal {
	int octal, i, decimal;
	public:
		/* Call constructor "todecimal" */
		tooctal(int binary) : todecimal(binary) {
			decimal = get_decimal();
			i = 1;
			octal = 0;
			while(decimal != 0) {
				octal += (decimal % 8) *i;
				i *= 10;
				decimal /= 8;
			}
		}

		inline void display() {
			display_decimal();
			cout << "Octal: " << octal << endl;
		}
};

int main() {
	int binary;
	cout << "Please enter a Binary number:" << endl;
	cin >> binary;
	tooctal octal(binary);
	octal.display();
	return 0;
}



/* Output */
Please enter a Binary number:
1010

Decimal: 10
Octal: 1

Comments (0)

  • To add your comment please or

We use cookies to improve your experience on our site and to show you personalised advertising. Please read our cookie policy and privacy policy.

Got It!