zoukankan      html  css  js  c++  java
  • VC++深入详解-第二章学习心得

    由于之前看过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;
    	}


     

  • 相关阅读:
    转盘抽奖活动代码
    信息滚动条
    gulp应用学习
    js实现语音播报功能
    如何安装使用sass
    纯CSS写三角形-border法
    css兼容性写法
    字体中英文对照
    浏览器内核判断
    个人课程总结
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3231132.html
Copyright © 2011-2022 走看看