#include <iostream>
using std::ostream;
using std::cout;
using std::endl;
class Base1 {
public:
Base1( int parameterValue )
{
value = parameterValue;
}
int getData() const
{
return value;
}
protected:
int value;
};
class Base2
{
public:
Base2( char characterData )
{
letter = characterData;
}
char getData() const
{
return letter;
}
protected:
char letter;
};
class Derived : public Base1, public Base2
{
public:
Derived( int integer, char character, double double1 )
: Base1( integer ), Base2( character ), real( double1 ) { }
double getReal() const {
return real;
}
void display()
{
cout << " Integer: " << value << "\n Character: "
<< letter << "\nReal number: " << real;
}
private:
double real;
};
int main()
{
Base1 base1( 10 ), *base1Ptr = 0;
Base2 base2( 'Z' ), *base2Ptr = 0;
Derived derived( 7, 'A', 3.5 );
cout << base1.getData()
<< base2.getData();
derived.display();
cout << derived.Base1::getData()
<< derived.Base2::getData()
<< derived.getReal() << "\n\n";
base1Ptr = &derived;
cout << base1Ptr->getData() << '\n';
base2Ptr = &derived;
cout << base2Ptr->getData() << endl;
return 0;
}
10Z Integer: 7
Character: A
Real number: 3.57A3.5
7
A