VC++深入详解-第二章学习心得

本文通过一个C++示例介绍了虚函数和纯虚函数的概念及其区别,并演示了函数覆盖与隐藏的不同之处。此外,还简要提到了一种有趣的变量交换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于之前看过C++的一些知识,所以这一章就挑一点以前比较不太在意的进行记录

 

首先是虚函数,纯虚函数

虚函数用关键字virtual申明,我理解成为派生类提供覆盖

纯虚函数virtual xxx()=xxx;  这个我理解成抽象类,接口之类的,供派生类进行实现。

 

下面的例子说明覆盖和隐藏的区别:

(概括下:函数的覆盖是发生在基类和派生类之间的,两个函数必须相同,并且有虚函数,除这种情况之外的就是隐藏了)

个人觉得隐藏和覆盖类似于java中的多态:父类的引用指向子类的对象

 

#include <iostream.h>
class Base
{
public:
	virtual void xfn(int i)
	{
		cout << "Base :: xfn(int i)" << endl;
	}

	void yfn(float f)
	{
		cout << "Base :: yfn(float f)" << endl;
	}

	void zfn()
	{
		cout << "Base :: zfn()" <<endl;
	}
};

class Derived : public Base
{
public:
	void xfn(int x)	//覆盖
	{
		cout << "Drived :: xfn(int i)" << endl;
	}

	void yfn(int c)	//隐藏
	{
		cout << "Drived :: yfn(int c)" << endl;
	}

	void zfn()	//隐藏
	{
		cout << "Drived :: zfn()" << endl;
	}

};


void main()
{
	Derived d;
	Base *pB = &d;
	Derived *pD = &d;

	pB ->xfn(5);
	pD ->xfn(5);

	pB ->yfn(3.14f);
	pD ->yfn(3.14f);

	pB ->zfn();
	pD ->zfn();
}


接触到一个新的交换顺序的方法。。。觉得挺好玩,记录下。。

void change(int &a, int &b)
	{
		a = a + b;
		b = a - b;
		a = a - b;
	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值