C++概念整理
/*
面向对象:
多态,
继承
封装
*/
#include <stdio.h>
#include <stdlib.h> //一旦有了纯虚函数,该对象就不能实例化了.
#define USE_PURE_VIRTUAL_FUNC 1 class CBase
{
public:
CBase(){}
~CBase(){}
public:
void doA()//不标virtual,说明不想被子类重载,如果遇到基类对象指针,则使用该函数时永远是用基类的
{
printf("call %s\n",__FUNCTION__);
}
virtual void doB()
{
printf("call %s\n",__FUNCTION__);
}
#if USE_PURE_VIRTUAL_FUNC > 0
virtual void doC() = ;//父类不实现,但子类必须实现.
#endif }; class CChild:public CBase
{
public:
CChild():CBase()
{};
~CChild(){};
public:
void doA()
{
printf("child call doA\n");
}
virtual void doB()
{
printf("child call doB\n");
}
#if USE_PURE_VIRTUAL_FUNC > 0
virtual void doC()
{
printf("child call doC\n");
}
#endif
}; int main(void)
{
#if USE_PURE_VIRTUAL_FUNC <= 0
CBase* pB = new CBase();
CChild* pC = new CChild(); pB->doA();
pB->doB(); pC->doA();
pC->doB(); CBase* pTemp = pB;
pTemp->doA();
pTemp->doB(); pTemp = pC;
pTemp->doA();
pTemp->doB(); delete pB;
delete pC;
#else
CChild* pC = new CChild(); pC->doA();
pC->doB(); CBase* pTemp = NULL;
pTemp = pC;
pTemp->doA();
pTemp->doB();
pTemp->doC(); delete pC;
#endif return ;
}
C++概念整理的更多相关文章
- 【知识点】业务连接服务(BCS)认证概念整理
业务连接服务(BCS)认证概念整理 I. BDC认证模型 BDC服务支持两种认证模型:信任的子系统,模拟和代理. 在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得 ...
- DNS,TCP,IP,HTTP,socket,Servlet概念整理
DNS,TCP,IP,HTTP,socket,Servlet概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. D ...
- IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 转
转http://www.cnblogs.com/loongsoft/p/7272830.html IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 前言: 记录 IIS 相 ...
- AIFramework基本概念整理
AIFramework基本概念整理 本文介绍: 对天元 MegEngine 框架中的 Tensor, Operator, GradManager 等基本概念有一定的了解: 对深度学习中的前向传播.反向 ...
- 西瓜书概念整理(chapter 1-2)
括号表示概念出现的其他页码, 如有兴趣协同整理,请到issue中认领章节 完整版见我的github:ahangchen 觉得还不错的话可以点个star ^_^ 第一章 绪论 Page2: 标记(lab ...
- IIS Web 服务器/ASP.NET 运行原理基本知识概念整理
前言: 记录 IIS 相关的笔记还是从公司笔试考核题开始的,问 Application Pool 与 AppDomain 的区别? 促使我对进程池进了知识的学习,所以记录一下学习 ...
- 西瓜书概念整理(chapter 1-2)熟悉机器学习术语
括号表示概念出现的其他页码, 如有兴趣协同整理,请到issue中认领章节 完整版见我的github:ahangchen 觉得还不错的话可以点个star ^_^ 第一章 绪论 Page2: 标记(lab ...
- python深度学习培训概念整理
对于公司组织的人工智能学习,每周日一天课程共计五周,已经上了三次,一天课程下来讲了两本书的知识.发现老师讲的速度太快,深度不够,而且其他公司学员有的没有接触过python知识,所以有必要自己花时间多看 ...
- G-sensor概述及常用概念整理【转】
本文转载自:http://www.jianshu.com/p/d471958189a0?nomobile=yesG 本文对G-sensor进行整理,先介绍G-sensor的一些基本概念,再具体讲解BO ...
- storm - 基础概念整理
理论 Hadoop的出现虽然为大数据计算提供了一条捷径,但其仍然存在自身难以克服的缺点:实时性不足.Hadoop的一轮计算的启动需要较长时间,因此其满足不了对实时性有较高要求的场景. Storm由此应 ...
随机推荐
- AWS EC2的VPN-PPTP搭建教程(on aws redhat6.5 X64 centOS 6.5)
前些日子收到amazon的邮件通知,一年前申请的ec2到期了,一年免费的free tier没有了,放在上面的2个站已经欠费了十几美元了,不过我也不打算用了,准备重新注册账号(请不要鄙视我..) 1.注 ...
- $.getJSON( )的使用方法简介
JSON(JavaScript Object Notation)即JavaScript对象表示法,是一种轻量级的数据交换格式.它非常便于编程人员对数据的处理,也便于机器对数据的解析和生成,应用非常广泛 ...
- sphinx 源码阅读之分词,压缩索引,倒排——单词对应的文档ID列表本质和lucene无异 也是外部排序再压缩 解压的时候需要全部扫描doc_ids列表偏移量相加获得最终的文档ID
转自:http://github.tiankonguse.com/blog/2014/12/03/sphinx-token-inverted-sort.html 外部排序 现在我们的背景是有16个已经 ...
- c#连接各种数据库
1.C#连接连接Access程序代码: ------------------------------------------------------------------------------- ...
- 介绍开源的.net通信框架NetworkComms框架之五 心跳检测
原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架 作者是英国人 以前是收费的 目前作者已经开源 许可是 ...
- 编译安装的 mysql apache 用 service mysqld start 来启动
先我们把mysql增加到linux的系统服务中去 mysql: 代码如下 复制代码 cd /usr/local/mysql/share/mysql cp mysql.server /etc/init ...
- 如何使用 Quagga BGP(边界网关协议)路由器来过滤 BGP 路由
在之前的文章中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置.在本教程中,我们将重点放在如何使用前缀列表prefix-li ...
- redis教程
windows下安装redis: http://jingyan.baidu.com/article/49ad8bce40174f5834d8fa24.html redis教程: http://www. ...
- Mybatis根据表自动生成相关代码
这个地方的生成需要用到三个文件,generatorConfig.xml.mybatis-generator-core-1.3.1.jar和mysql-connector-java-5.1.29.jar ...
- ConvertFrom-String 命令研究
-------先上个例子------- $aaa = @'0.027 0.034 0.834 0.1050.346 0.558 0.018 0.0780.001 0.997 0.001 0.0010. ...