/************************************************************************/
#include <iostream.h>
#include <WINDOWS.H>
/************************************************************************/
/* 定义一个CLOCK类 */
/************************************************************************/
class
CLOCK
{
private
:
int
hour, minute, second;
public
:
CLOCK();
CLOCK(
int
,
int
,
int
);
void
update();
void
display();
};
/************************************************************************/
/* 定义CLOCK函数 */
/************************************************************************/
CLOCK::CLOCK()
{
hour = minute = second = 0;
cout <<
"\t One object initialalized."
<< endl;
}
/************************************************************************/
/* 定义CLOCK重载函数 */
/************************************************************************/
CLOCK::CLOCK(
int
h,
int
m,
int
s)
{
hour = h;
minute = m;
second = s;
cout <<
"\t An object initialalized."
<< endl;
}
/************************************************************************/
/* */
/************************************************************************/
void
CLOCK::update()
{
second++;
if
(second == 60)
{
second = 0;
minute ++;
}
if
(minute == 60)
{
minute = 0;
hour++;
}
if
(hour == 24)
{
hour = 0;
}
}
/************************************************************************/
/* */
/************************************************************************/
void
CLOCK::display()
{
cout << hour <<
":"
<< minute <<
":"
<< second <<endl;
}
/************************************************************************/
/* main函数 */
/************************************************************************/
void
main()
{
CLOCK MyClock(12, 0, 0);
//声明类名
while
(1)
{
MyClock.display();
MyClock.update();
Sleep(1000);
}
}
|
上面的是函数的重载,
下面是函数的隐藏和覆盖
#include <IOSTREAM.H>
int
a = 5;
int
&b = a;
/************************************************************************/
/* Base */
/************************************************************************/
class
Base
{
public
:
virtual
void
fn();
};
/*Derived类的fn(int)函数隐藏了Base类的fn函数*/
class
Derived:
public
Base
{
public
:
/*派生类的函数与基类的函数同名,但参数列表不同
在这种情况下,不管基类的函数声明是否有virtual
关键字,基类的函数都将被隐藏。*/
void
fn(
int
);
};
/*Derived2类的fn()函数隐藏了Derived类的fn(int)
*/
class
Derived2:
public
Derived
{
public
:
void
fn();
};
class
animal
{
public
:
void
eat()
{
cout <<
"animal eat"
<< endl;
}
void
sleep()
{
cout <<
"animal sleep"
<< endl;
}
void
breathe()
{
cout <<
"animal breathe"
<< endl;
}
};
class
fish:
public
animal
{
public
:
void
breathe()
{
cout <<
"fish bubble"
<< endl;
}
};
void
fn(animal *pAn)
{
pAn->breathe();
}
void
main()
{
animal *pAn;
fish fh;
pAn = &fh;
fn(pAn);
}
|