C++概念整理

  1 /*
  2     面向对象:
  3             多态,
  4             继承
  5             封装
  6 */
  7 #include <stdio.h>
  8 #include <stdlib.h>
  9
 10 //一旦有了纯虚函数,该对象就不能实例化了.
 11 #define USE_PURE_VIRTUAL_FUNC 1
 12
 13 class CBase
 14 {
 15 public:
 16     CBase(){}
 17     ~CBase(){}
 18 public:
 19     void doA()//不标virtual,说明不想被子类重载,如果遇到基类对象指针,则使用该函数时永远是用基类的
 20     {
 21         printf("call %s\n",__FUNCTION__);
 22     }
 23     virtual void doB()
 24     {
 25         printf("call %s\n",__FUNCTION__);
 26     }
 27 #if USE_PURE_VIRTUAL_FUNC > 0
 28     virtual void doC() = 0;//父类不实现,但子类必须实现.
 29 #endif
 30
 31 };
 32
 33 class CChild:public CBase
 34 {
 35 public:
 36     CChild():CBase()
 37     {};
 38     ~CChild(){};
 39 public:
 40     void doA()
 41     {
 42         printf("child call doA\n");
 43     }
 44     virtual void doB()
 45     {
 46         printf("child call doB\n");
 47     }
 48 #if USE_PURE_VIRTUAL_FUNC > 0
 49     virtual void doC()
 50     {
 51         printf("child call doC\n");
 52     }
 53 #endif
 54 };
 55
 56 int main(void)
 57 {
 58 #if USE_PURE_VIRTUAL_FUNC <= 0
 59     CBase* pB = new CBase();
 60     CChild* pC = new CChild();
 61
 62
 63     pB->doA();
 64     pB->doB();
 65
 66     pC->doA();
 67     pC->doB();
 68
 69
 70     CBase* pTemp = pB;
 71     pTemp->doA();
 72     pTemp->doB();
 73
 74
 75     pTemp = pC;
 76     pTemp->doA();
 77     pTemp->doB();
 78
 79     delete pB;
 80     delete pC;
 81 #else
 82     CChild* pC = new CChild();
 83
 84
 85     pC->doA();
 86     pC->doB();
 87
 88
 89     CBase* pTemp = NULL;
 90     pTemp = pC;
 91     pTemp->doA();
 92     pTemp->doB();
 93     pTemp->doC();
 94
 95     delete pC;
 96 #endif
 97
 98
 99
100
101     return 0;
102 }
时间: 2024-09-29 18:01:28

C++概念整理的相关文章

DNS,TCP,IP,HTTP,socket,Servlet概念整理

概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. DNS协议 DNS 协议的作用是将域名解析为IP,域名的数量非常多,域名和ip的对应关系也经常变化,所以就需要专门的DNS服务器,用来将域名解析为IP. windows下,nslookup命令可以查看域名解析的结果.nslookup +网址. 世界各地有很多DNS服务器,也有一些大型公用的DNS服务器可以使用,比如Google的8.8.8.8和国内的114.114.1

面向对象基本概念整理

1.基本概念: 1.1 类与对象的初探 要我说,无论是面向过程的语言也好,面向对象的语言也罢,我首先要给他讲的都是类和对象!--------“这个世界是由什么组成的?”这个问题如果 让不同的人来回答会得到不同的答案.如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子.原子.离子等等的化学物质组成的”.如果是一个画家 呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”.……呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是 由不同类型的物与事所构成的

TCPIP详解 卷一核心概念整理

今天用wireshark分析一个案例,TCPIP卷一又复习了一遍,整理概念便于查看

G-sensor概述及常用概念整理【转】

本文转载自:http://www.jianshu.com/p/d471958189a0?nomobile=yesG 本文对G-sensor进行整理,先介绍G-sensor的一些基本概念,再具体讲解BOSCH.ST.ADI三家的G-sensor,其中BOSCH的G-sensor重点讲BMA222E,ST的G-sensor重点讲LIS2DH12,ADI的G-sensor具体讲ADXL362. 一.G-sensor概述 什么是MEMS MEME(Micro-Electro-Mechanical Sys

浙江大学软件学院三维动画与交互技术考试概念整理

第一讲 1.    增强现实技术AR: --融合了三维动画.立体视觉和图像处理: --建模.渲染.位置标定.图像融合: 2.    OpenGL是一种用于创建实时3D图像的编程接口. 3.    三维这个术语表示一个正在描述或显示的物体具有三维维度:宽度.高度.深度: --计算机3D图形实质上也是平面的: --在计算机屏幕上显示的二维图像,提供深度(或第三维)的错觉: 2D+透视 = 3D 透视使人产生深度的错觉. 4.    真正的3D是通过人的两只眼睛观察同一个物体,在视网膜上生成具有视差的

storm - 基础概念整理

理论 Hadoop的出现虽然为大数据计算提供了一条捷径,但其仍然存在自身难以克服的缺点:实时性不足.Hadoop的一轮计算的启动需要较长时间,因此其满足不了对实时性有较高要求的场景. Storm由此应运而生,提供了可扩展的,可靠的,易于使用,而且是编程语言无关的实时大数据处理框架. 使用 Components of a storm cluster Storm集群类似于Hadoop集群,storm运行与topo之上. Storm集群中存在两类节点:master节点和worker节点.master运

光纤与PON基础概念整理

近期有幸接触到通讯这一领域,此文专门用于整理记录. 首先是光纤与光缆 光纤(OpticalFiber,OF)是用来导光的透明介质纤维,一根有用化的光纤是由多层透明介质构成,一般能够分为三部分:折射率较高的纤芯.折射率较低的包层和外面的涂覆层,纤芯材质主要为SiO2 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

active directory 学习和概念整理

第一,在局域网内,如何管理计算机上的资源,需要一个管理策略. 微软提供了两种:工作组和域.两者区别就是,工作组是自治的,组内的计算机个个都作为独立.对等的自治实体而存在.恩,这也是以太网的设计初衷. 但是,当我们需要额外的管理模型,其实作为一个组织,更可能的是,需要一个公共的中央控制主机,这就是域模型.域模型中,会提供一个域控制器,域控制器上存储了这个域内的所有账户信息,也就是一个账户数据库Active Directory.这也就导致,资源.账户.机器的概念开始分离. 第二,在域管理中,正常的思

oralce中相关的概念整理

[数据库名]  概念:就是一个数据库的标识,作用等同于我们的身份证的作用,如果一台机器上安装了多个数据库,那么每个数据库都会有一个数据库名称对应,这些数据库名称在数据库被创建的时候,数据库名称也会被写入控制文件中去,在控制文件中是以二进制的文件存储,我们如果要修改的话就不是太方便,所以我们在起数据库名称的时候尽量考虑清楚. 作用:数据库名称是在创建数据库,安装数据库,创建数据库控制文件,修改数据结构的时候或者备份数据库的时候会使用到. 我们如果想在sqlplus中查看当前连接的数据库名称: 方法

ClearCase一些概念整理

基本概念 ClearCase有时候缩写为CC. 它是IBM Rational 出品的大型商用软件配置管理工具.其核心是版本控制. 尽管能够听到对ClearCase的很多抱怨,比如昂贵.复杂.不好用,但它仍然是收费的版本控制系统中市场份额最大的. 它有两个版本:Base ClearCase和ClearCase UCM. Base ClearCase向你提供的是文件.目录.版本.标签.分支.触发器和链接等"裸露"的环境. 在此基础上,你可以比较自由的进行设置和二次开发,以满足你实际项目的需