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秒的提升,那也是很大的一个成就 ...
随机推荐
- BinaryReader和BinaryWriter的leaveOpen参数 z
在.NET 4.5后,微软为BinaryWriter和BinaryReader类型的构造函数中加入了leaveOpen参数,当该参数为true后,BinaryReader或者BinaryWriter关 ...
- dynamips虚拟服务:找不到指定设备
刚开始接触dynamips,属于新手, 之前是可以正常使用dynamips的,但不知道什么原因就出现这样的问题 果断重新安装,之后可以正常使用
- mac远程连接 win8
首先 打开组策略 .windows8 下 按win+R 可以唤出运行,输入[gpedit.msc]按下 回车键 选择[计算机配置]>[管理模板]>[Windows组件]>[远程桌面服 ...
- uvalive 4795 Paperweight
题意:给出一个5个顶点的多面体以及多面体内一点P.求让 多面体不同的方式(即以不同的面)放在地面上,设这个着地的面为A,多面体重心在A上的投影为B,在保证B在A内部且距离A的各个边界不小于0.2的前提 ...
- springmvc 传递对象数组参数 property path is neither an array nor a List nor a Map
Spring MVC 3: Property referenced in indexed property path is neither an array nor a List nor a Map ...
- [思维题]Bored Qishen
给出一个整数集,其中包含1-n的所有整数,要求挑选出一个元素最多的子集,使得子集中任意两数的乘积不是完全平方数 (n<=10^6) 求这样一个最大子集的元素个数 #include <cst ...
- maven创建web项目
上一次自己使用Maven还是在大三在学校做项目时.现在公司有个新项目,想重新使用一下maven,顺便记下一些步骤 1.安装maven 1.1 访问(http://maven.apache.org/), ...
- light oj 1008 - Fibsieve`s Fantabulous Birthday
1008 - Fibsieve`s Fantabulous Birthday PDF (English) Statistics Forum Time Limit: 0.5 second(s) Me ...
- 转载ASP.NET MVC 和ASP.NET Web Form简单区别
转载原地址 http://www.cnblogs.com/lei2007/p/3315431.html 概论: Asp.net 微软 提供web开发框架或者技术.分Web Form和ASP.NET ...
- ulua学习笔记(二):官方资料及问题解决方案
uLua&SimpleFramework入门视频教程网盘地址 视频教程地址 http://pan.baidu.com/s/1gd8fG4N游戏框架地址 https://github.com/j ...