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

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

2013-08-01 20:14 281 查看
由于之前看过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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: