1、如果一个类要成为基类,那么它的成员变量声明成受保护的变量,既用关键字protected修饰。
2、处理共同继承产生的二义性:采用虚继承方式,当出现两个相同的成员时,编译器会自动删除其中一个。其方法是在继承的时候加上关键字:virtual。也可以将会产生二义性的成员声明为私有成员。但是这种方法不可用,实际开发中无意义。
3、赋值有两种情况:(1)、同类对象可以相互赋值。(2)、派生类兑现可以为基类赋值(但是基类对象不能为派生类对象赋值)。这种赋值方式只能赋值公共成员,因为私有成员不能被继承,既派生类对象中没有基类的私有成员,因此不能被继承。
4、基类指针可以保存派生类对象地址。引用也是一样的。
5、用指针指向类对象时,它能访问的范围由它的指针类型决定。
6、组合:用对象作为成员变量。在创建的过程中,是先创建成员变量的对象。在调用构造函数时,需要通过参数列表。这里与派生类的参数列表不同,用的是对象名,而非类名。其调用构造函数的顺序以类中定义的顺序为准,不因参数列表书写顺序。组合能做的事情,继承都能做。但是这里涉及到编程思想的问题。继承应该要满足“是”的要求。即“派生类”是“基类”。而组合仅仅是让该类的对象具有某一个功能。这一点必须分清楚。
7、类是本质性的它可以直接写或是从基类继承,它应该怎样去定义,应该根据实际业务去定义。而组合是扩展功能,是可有可无的。在实际开发中,因多用组合,少用继承。因为组合的耦合性相对较低。
8、设计模式(23种)->符合设计原则->设计出可扩展、可维护的项目。
9、当组合和继承同时存在时,先调用继承的构造函数,再调用组合的构造函数。析构函数调用顺序与构造函数调用顺序相反。使用初始化表时,尽量与构造函数调用顺序相同,否则会报警告。
10、业务第一,思想第二。思想是为业务服务的。
11、继承是类型上的包含关系或者同类。组合是完全没有关联。是功能的扩展。

C++学习笔录2的更多相关文章

  1. ADO.NET Entity Framework学习笔录(一)

    今天开始学习了EF的相关内容,以前只知道ADO.NET,今天学习后觉得有必要写个相关的学习心得,今天就先写第一篇. 我们的再学习的过程中所用到的环境是Windows7+SQLServer2008+VS ...

  2. 性能测试LR学习笔录 -2

    LoadRunner基本测试流程: 制定性能测试计划(部分)  -> 创建测试脚本 -> 编译.运行测试脚本 -> 创建场景 - > 运行.监控场景.收集数据  -> 生 ...

  3. SVG学习笔录(一)

    SVG可缩放矢量图形(Scalable Vector Graphics)这项技术,现在越来越让大家熟知,在h5的移动端应用使用也越来越广泛了, 下面让我分享给大家svg学习的经验. HTML体系中,最 ...

  4. DDD学习笔录——提炼问题域之知识提炼与协作的基本原则

    1.通过通用语言达成共识 通用语言,已经强调过好多遍了,在DDD再怎么重视都不为过,后面可能还会讲. 知识提炼的输出以及共识的构建就是常见的通用语言(UL). 当与业务相关人员和主题专家进行建模时,每 ...

  5. DDD学习笔录——简介领域驱动设计的实践与原则

    DDD在存在许多DDD模式的同时,也有大量实践和指导原则,这些都是DDD思想体系成功的关键. 1.专注于核心领域 DDD强调的是在核心子域付出最多努力的需要.核心子域是你的产品会成功还是会失败的差异化 ...

  6. C++学习笔录4

    1.容器=数据结构+算法.相当于是为复杂的数据设计一种专门用于存放该数据的东西.用于开发中传递复杂的数据. 2.模版函数只能写在头文件中.不能单独做声明. 3.STL容器类分为三类: (1).顺序容器 ...

  7. C++学习笔录3

    1.隐藏:存在于派生类和基类中.只要成员名字相同就叫做隐藏.参数和函数名都相同时,是一种特殊的隐藏,叫做重写,重写只出现在函数中.若需要访问基类中被隐藏的成员,必须访问这种方法:“对象名:类名::隐藏 ...

  8. C++学习笔录1

    1.在实际开发中,引用类型变量值用于函数的参数中.它不会另外开辟空间(提高了程序效率),他相当于变量的别名,代表的就是当前这个变量的地址空间.(引用的底层用的是指针.因此从底层的角度讲,其实它的效率是 ...

  9. cocos2d学习笔录1

    CCDirector的主要作用: 1.访问和改变场景: 2.访问cocos2d-x的配置细节 3.访问视图(OPENGL,UIVIEW,UIWINDOW): 4.暂停,恢复和结束游戏: 5.在UIKi ...

随机推荐

  1. Sending HTML Form Data

    public Task<HttpResponseMessage> PostFormData(){ // Check if the request contains multipart/fo ...

  2. 使用OAuth2.0访问豆瓣API

    如何计算某个用户的access_token过期时间?开发者可以通过两种方式计算:用户授权时,oauth2/access_token接口返回的expires_in值就是access_token的生命周期 ...

  3. CentOS 安装nload(流量统计)

    yum install gcc gcc-c++ ncurses-devel wget http://www.roland-riegel.de/nload/nload-0.7.2.tar.gz tar ...

  4. JavaScript 【 IE中的XML DOM 】

    IE中的 XML DOM 在统一的正式规范出来以前,浏览器对于XML的解决方案各不相同.DOM2级提出了动态创建XML DOM规范,DOM3进一步增强了XML DOM.所以,在不同的浏览器实现XML的 ...

  5. Jpa规范中persistence.xml 配置文件解析

    使用spring data + hibernate 进行逻辑层操作时候需要配置 persistence.xml的内容   <?xml version="1.0"?> & ...

  6. 利用DreamweaverCS5制作一个含有动态标题的教程

    DreamweaverCS5怎么制作一个含有动态标题?做一个网页就先要做一个标题,一个好标题会让网页让人印象深刻,有动态的标题会让网页更生动,下面我就介绍一下怎么制作一个含有动态的标题   做一个网页 ...

  7. Android系统环境变量配置

    ANDROID_HOME D:\Program Files\Android-sdk D:\AndroidSDK\android-sdk ANDROID_SDK_HOME %ANDROID_HOME% ...

  8. Java环境配置原理

    Java环境配置原理详解 1.Jdk安装目录文件说明: 一般jdk安装目录及路径 \Java\jdk1.7.0_79\lib,里面主要包含以下文件夹. bin:主要存放的是java工具中常用命令如:j ...

  9. blog开篇

    本来是写java学习开篇的,现在就把它改为博客开篇吧. 其实一直都想着记录一下自己学习的过程,或者说是借口,一直在忙,也从重庆辗转到广州,又从广州辗转到天津了,又一个新阶段开始了,猴年马月都到了,哈哈 ...

  10. JavaScript中的Math.ceil()、Math.round()、Math.floor()

    1. Math.ceil():向上取整(指取大于该浮点数的最小整数) 2. Math.round():四舍五入取整(注意:当该浮点数距离两端整数一样时,取较大的那个整数,如Math.round(-1. ...