码迷,mamicode.com
首页 > 其他好文 > 详细

成员函数的(重载,覆盖,虚函数,隐藏)

时间:2015-05-18 17:00:55      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

重载特点

  1. 同一个类中

  2. 不同的参数列表

覆盖特点

  1. 位于子类和父类

  2. 参数列表相同

虚函数特点

  1. 函数声明时带有关键字 virtual

  2. 通过父类指针完成多态

隐藏特点

  1. 位于子类和父类

  2. 函数名相同

  3. 若参数不同。此时,不论有无 virtual 关键字,父类的函数将被隐藏(注意别与重载混淆)

class Fruit
{
public:
	void priName(string s)
	{	
		cout<<"水果"<<endl;
	}
};

class Apple :public Fruit
{
public:
	void priName(int a)
	{
		cout<<"苹果"<<endl;
	}
};

int main(int argc, char *argv[])
{
	Apple apple;
	apple.priName("266");//error
	return 0;
}



 3. 若参数相同,但是父类函数没有 virtual关键字。此时,父类的函数被隐藏(注意别与覆盖混淆)

class Fruit
{
public:
	void priName(int s)
	{	
		cout<<"水果"<<endl;
	}
};

class Apple :public Fruit
{
public:
	void priName(int a)
	{
		cout<<"苹果"<<endl;
	}
};

int main(int argc, char *argv[])
{
	Apple apple;
	apple.priName("565");//error
	return 0;
}


成员函数的(重载,覆盖,虚函数,隐藏)

标签:

原文地址:http://my.oschina.net/u/1391394/blog/416198

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!