リロードリライト定義
7656 ワード
#include
using namespace std;
class Base
{
public:
// =========================================================================
// , , / virtual
// =========================================================================
// virtual , , ( )
void a()
{
cout << "Base::a()" << endl;
};
// virtual , 。 ( , override)。
virtual void b()
{
cout << "Base::b()" << endl;
}
// =========================================================================
// , , / virtual
// =========================================================================
// virtual , 。
void d(int x)
{
cout << "Base::d() x = " << x << endl;
}
// virtual , 。
virtual void e(int x)
{
cout << "Base::e() x = " << x << endl;
}
// =========================================================================
// , , , / virtual
// =========================================================================
// virtual ( , “ ” )
void f()
{
cout << "void Base::f()" << endl;
}
// virtual ( )
virtual void g()
{
cout << "virtual void Base::g()" << endl;
}
};
class Derived : public Base
{
public:
// =========================================================================
// , , / virtual
// =========================================================================
// ( )
void a()
{
cout << "Derived::a()" << endl;
}
//
virtual void b()
{
cout << "Derived::b()" << endl;
}
// =========================================================================
// , , / virtual
// ( : virtual )
// =========================================================================
//
void d(int x, int y)
{
cout << "Derived::d() x = " << x << " y = " << y<< endl;
}
//
virtual void e(int x, int y)
{
cout << "Derived::e() x = " << x << " y = " << y << endl;
}
// =========================================================================
// , , , / virtual
// =========================================================================
//
int f()
{
cout << "int Derived::f()" << endl;
return 1;
}
//virtual int g()
//{
// cout << "virtual int Base::g()" << endl;
// return 1;
//}
};
int main()
{
//
int xx = 100;
cout << " , , virtual " << endl;
Derived d;
d.a();
d.Base::a(); //
cout << " , , virtual " << endl;
Base* b = new Derived; //
b->b();
Base* s = new Base;
s->b();
cout << " , , virtual " << endl;
d.d(xx, xx);
// d.d(xx); //
d.Base::d(xx); //
cout << " , , virtual " << endl;
d.e(xx, xx);
//d.e(xx); //
d.Base::e(xx);
cout << " , , , virtual " << endl;
d.f();
d.Base::f();
}