您的位置:首页 > 编程语言 > C语言/C++

C++的重载函数定义和用法

2014-12-06 11:25 204 查看
/************************************************************************/

#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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: