#include <iostream>
using namespace std;
class BaseClass {
int x;
public:
void setx(int i) {
x = i;
}
int getx() {
return x;
}
};
class DerivedClass : public BaseClass {
int y;
public:
void sety(int i) {
y = i;
}
int gety() {
return y;
}
};
int main()
{
BaseClass *p; // pointer to BaseClass type
BaseClass baseObject; // object of BaseClass
DerivedClass derivedObject; // object of DerivedClass
p = &baseObject; // use p to access BaseClass object
p->setx(10); // access BaseClass object
cout << "Base object x: " << p->getx() << '\n';
p = &derivedObject; // point to DerivedClass object
p->setx(99); // access DerivedClass object
derivedObject.sety(88); // can't use p to set y, so do it directly
cout << "Derived object x: " << p->getx() << '\n';
cout << "Derived object y: " << derivedObject.gety() << '\n';
return 0;
}
|