vc++深入详解学习-NO.3

c++的多态性,基于虚函数的多态性技术,在成员函数的定义前面加上virtual关键字申明的函数叫做虚函数,当c++编译器在编译的时候,发现类中的虚函数,这个时候c++就好采用迟邦定技术,在运行期间依据对象的类型确定调用哪一个函数。 

 

在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时候将会根据对象的实际类型来调用相应函数!如果对象类型是派生类,就调用派生类函数,基类则调用基类函数!

纯虚函数  virtual 返回类型 函数名()=0  采用这种方式声明的函数即是纯虚函数,含有纯虚函数的类叫做抽象类,这种类不能用来实例化对象,只是作为基类为派生类服务。在派生类中必须完全实现基类的纯虚函数,否则派生类也编程了抽象类不能实例化对象!  纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体的实现定义。

=========================

 

函数的覆盖的条件:

         1 基类函数必须是虚函数

         2 发生覆盖的两个函数必须分别位于基类和派生类

         3  函数名称和参数列表必须完全相同

在函数覆盖的情况下,编译器会子运行的时候根据对象的实际类型来确定调用的函数!

=======================

函数的隐藏

派生类中具有和基类同名的函数,从而在派生类中隐藏了基类同名的函数。

1派生类的函数与基类的函数完全相同(函数名和列表都相同),只是基类的函数没有使用virtual关键字,此时基类的函数将被隐藏而不是覆盖。

2派生类的函数与基类的函数同名,但是参数列表不同,在这种情况下,不管基类的函数声明是否含有virtual关键字,基类的函数都将被隐藏,注意这种情况与函数重载的区别,重载发生在同一个类中。

 

区分覆盖和隐藏。。函数的覆盖是发生在派生类与基类之间,两个函数必须完全相同,并且都是虚函数,不属于这种情况的,就是隐藏!

===============================

引用。 引用就是变量的别名,他需要另一个变量或者对象来初始化自身! 用&标示申明一个引用,引用必须在申明时候进行初始化。

引用和用来初始化引用的变量指向同一块内存,因此通过引用或者变量可以改变同一块内存中的内容。引用一旦初始化,他就代表了一块特定的内存,再也不能代表其他的内存!

引用只是一个别名,是一个变量或者对象的替换名称。引用的地址没有任何意义,因此c++没有提供访问引用本身地址的方法、引用的地址就是他所引用的变量或者对象的地址对引用的地址所做的操作就是对被引用的对象或者变量所做操作。指针是地址,指针变量要存储地址值,因此要占据内存空间,我们可以随时修该指针变量所保存的地址值,从而指向其他内存。

=============================

c++中为了防止头文件的多次包含,我们采用预编译指令符来解决。 用#ifndef 检查有无定义宏,如果没有,则定义一个宏#define,然后执行头文件中的内容,最后在结尾处写上#endif!

===========

visual c++是一个集编辑器,编译器,链接器的工具集合,编译过程分两个部分

1是cpp文件的单独编译生成obj目标文件2vc连接生成的obj文件,然后生成exe可执行文件。

 

 

转载于:https://www.cnblogs.com/veonm/p/3204383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值