源程式:
#include <iostream>
using namespace std;
class base
{
int a;
public:
base(int sa)
{
a = sa;
}
int geta()
{
return a;
}
};
class derived :public base
{
int b;
public:
derived(int sa, int sb) :base(sa)
{
b = sb;
}
int getb()
{
return b;
}
};
int main()
{
base bs1(123);
cout << "bs1.geta()=" <<bs1.geta()<< endl;
derived der(246,468);
bs1 = der;
cout << "bs1.geta()=" << bs1.geta() << endl;
base *pb = &der;
cout << "pb->geta()=" << pb->geta() << endl;
cout << "((derived *)pb)->getb()=" << ((derived *)pb)->getb() << endl;
system("pause");
return 1;
}
運作結果: