C++ (P70—P96)
1 类的成员默认为私有模型
2 类的声明内不允许对数据成员进行初始化
3 类的成员函数,如果在类外定义,只需在函数类型之前加上inline就为内联函数了,如果在类内定义函数则该函数自动成为内联成员函数(建议性的),当编译器确定某个函数为内联函数时这个函数肯定不是虚函数。关于此论断查看之前博客(c++内联函数与静态函数)
4 声明对象注意:类的数据成员可以是另一个已经定义的类的对象,不能是本类的对象;对于在程序之前没有定义或者仅是引用性声明的类不能定义对象
5 构造函数:a 不能有返回值和void b 公有函数 c 若没参数,则声明对象时不要在对象后面加括号,与java不同
构造函数可以定义为内联函数,可以带默认形参值,可以重载、
6 析构函数:析构函数的函数名应为类名前加“~”,没有参数,没有返回值类型,一个类只能一个析构函数
7 只有在定义构造函数时,才可以带有成员初始化列表,如果仅是声明构造函数,则不能带有成员初始化列表
8 静态数据成员:需要在类中进行引用性声明,之后为了获得内存需要在文件作用域中进行定义性声明,此时不需再写static。可以在定义时初始化和函数中初始化,但是不能使用构造函数的参数列表初始化。
9 静态成员函数:如果是在类外定义,同样不能再写static,只能调用静态变量。静态成员函数不能定义为常成员函数(??不在一个内存范围内)。
10 友元函数的特点:不是这个类的成员函数,在可以在函数体内通过对象名访问这个类的私有或者保护成员。
可以是一个普通函数也可以是其他类的成员函数;
在类中仅是在声明时在前面加上friend体现,具体的定义应是在类外,否则意义冲突。
友元声明在公有部分、私有部分和保护部分意义相同。
11 常对象:只能访问常成员函数,不能访问非常成员函数,但是常对象能访问常成员变量和非成员变量(已验证正确),背后的机理自己思考一下;
(??在声明常对象时,会自动将对象中对应的变量提升为常变量,但是函数不会??)
常对象声明时必须初始化,并且在其他地方不能再重新赋值。
常函数:类的常成员函数不能改变成员变量的值,也不能调用该类中的非常成员函数,结合常对象的特点,对于变量,如果是常对象调用常函数此时显然
常函数可以调用非常变量和常变量,如果是非常对象调用常函数此时应该不能调用非常变量(经验证猜想不对,因此上述??中的内容不对)。
结论:常函数能被常对象和非常对象调用,常函数只能调用常函数不能调用非常函数,但是能调用非常变量和常变量。
常成员变量:注意一点,常数据成员的初始化只能通过编写带有初始化列表的构造函数来实现。
12 全局变量和局部静态变量的区别:都具有静态生存期,但是全局变量的作用域是整个文件,局部静态变量的作用域仅在所定义的函数内或者块内。
C++ (P70—P96)的更多相关文章
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- 恢复SQL Server被误删除的数据(再扩展)
恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...
- 浅谈WEB页面提速(前端向)
记得面试现在这份工作的时候,一位领导语重心长地谈道——当今的世界是互联网的世界,IT企业之间的竞争是很激烈的,如果一个网页的加载和显示速度,相比别人的站点页面有那么0.1秒的提升,那也是很大的一个成就 ...
随机推荐
- Java虚拟机笔记 – JVM 自定义的类加载器的实现和使用2
1.用户自定义的类加载器: 要创建用户自己的类加载器,只需要扩展java.lang.ClassLoader类,然后覆盖它的findClass(String name)方法即可,该方法根据参数指定类的名 ...
- eclipse配置tomcat加大内存的方法
双击tomcat -Dcatalina.base="E:\work\whykt\.metadata\.plugins\org.eclipse.wst.server.core\tmp0&quo ...
- POJ 3321 Apple Tree(dfs序树状数组)
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=10486 题意:一颗有n个分支的苹果树,根为1,每个分支只有一个苹果,给出n- ...
- Extjs4 页数重置
重新加载数据store.loadPage(1);就是到第一页了
- 5.2 CUDA Histogram直方图
什么是Histogramming Histogramming是一种从大的数据集中提取典型特征和模式的方式. 在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计 ...
- 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
3.暂停游戏 暂停游戏概述: 在游戏进行时,玩家有可能会遇到多种突发事件.在跑酷游戏中突发状况的发生对游戏的影响更甚,游戏进行时玩家死亡,游戏只能从头开始,那么如果因为外界因素而影响游戏的进行,显然是 ...
- localtime()方法的疑惑
在做一个时间管理的APP中遇到一些问题 windows linux mac下time.h中都有关于localtime()的定义. 它不是一个保险可靠的方法,使用的时候需要小心. 参考 http://b ...
- KVC, KVO实现原理剖析
iPhone程序开发 KVO/KVC实现机理分析是本文要介绍的内容,不多说,直接进入话题.我们来看详细内容. Objective-C里面的Key-Value Observing (KVO)机制,非常不 ...
- 依賴注入入門——Unity(一)
參考資料http://blog.csdn.net/m13666368773/article/details/7802126 背景介紹 在设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系, ...
- 【Stage3D学习笔记续】真正的3D世界(五):粒子特效
先看效果,按下空格键添加粒子特效: 一般而言粒子特效的实现都是比较复杂的,且不说实现粒子特效的编码和设计,光是编写一个粒子编辑器就不是简单的一件事,但是作者使用了很取巧的方式来完成,我们接下来深入代码 ...