VC++深入详解-第二章学习心得
2024-10-20 07:40:55
由于之前看过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;
}
最新文章
- Git 恢复某个文件指定版本
- 如何切换android的横屏与竖屏?
- PHP学习笔记(七)
- 设计模式24---设计模式之职责链模式(Chain of Responsibility)(行为型)
- 改变页面选择文字颜色和背景颜色----selection伪元素
- not valid for Running the scheme
- 【ASP.NET Web API教程】6 格式化与模型绑定
- Linux根目录下文件说明
- Eclipse 的 git 插件操作 ";代码提交";以及";代码冲突";
- POJ 2311 Cutting Game [Multi-SG?]
- 【带着canvas去流浪(4)】绘制散点图
- PageAdmin Cms V2.0 getshell 0day
- redis最大缓存和回收策略
- 【Anaconda】:科学计算的Python发行版
- scikit-learn使用PCA降维小结
- SQL批量提交修改业务
- magento 开启模板路径提示
- WCF服务全局统一异常处理机制
- linux socket下send()&;recv()调用
- TCP/IP 协议中的编址
热门文章
- Android Button悬浮在SurfaceView上
- S3C2410 实验三——块拷贝、字拷贝(寄存器的理解)
- 【PythonChallenge】Level 4
- tlplayer,wzplayer支持wince,winphone,windows8 for arm
- POJ_1064_Cable_master_(二分,假定一个解并判断是否可行)
- phpcms v9会员中心文件上传漏洞
- Sharepoint的网页(Page),网页解析(Parsing)与解析安全处理(Security)
- DNS----域名解析系统
- Chrome已原生支持“Chrome To Mobile”
- Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例