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秒的提升,那也是很大的一个成就 ...
随机推荐
- Linux 下操作gpio(两种方法,驱动和mmap)
目前我所知道的在linux下操作GPIO有两种方法: 1. 编写驱动,这当然要熟悉linux下驱动的编写方法和技巧,在驱动里可以使用ioremap函数获得GPIO物理基地址指针,然后使用这个指针根据 ...
- MySQL查询执行过程
MySQL查询执行路径 1. 客户端发送一条查询给服务器: 2. 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果.否则进入下一阶段: 3. 服务器端进行SQL解析.预处理,再由优 ...
- uvalive 3890 Most Distant Point from the Sea
题意:求一个凸多边形中一点到边的最大距离. 思路:转换成在多边形内部,到每边距离为d的直线所围成的内多边形是否存在.也就是,二分距离+半平面交. #include<cstdio> #inc ...
- 安装mysql-5.7.9-winx64
1.mysql-5.7.9-winx64.zip下载 官方网站下载地址:http://dev.mysql.com/downloads/mysql/5.7.html 2.解压到D:\MySqlDataB ...
- Django model中 双向关联问题,求帮助
Django model中 双向关联问题,求帮助 - 开源中国社区 Django model中 双向关联问题,求帮助
- Java流操作之转换流
流的操作规律: 1.明确流和目的. 数据源(源头):就是需要读取,可以使用两个体系:InputStream.Reader 数据汇(目的地):就是需要写入,可以使用两个体系:OutputStream.W ...
- python的资料
python2.7的类库:https://docs.python.org/2.7/library/index.html
- ScrollView详解
创建方式 1:StoryBoard/Xib 这里StoarBoard就不多说,直接拖就可以,说太多没意思,如果连这个都不会我只能先给你跪了! 2:代码: 1 2 3 CGRect bounds = [ ...
- iOS 详解NSXMLParser方法解析XML数据方法
前一篇文章已经介绍了如何通过URL从网络上获取xml数据.下面介绍如何将获取到的数据进行解析. 下面先看看xml的数据格式吧! <?xml version="1.0" enc ...
- Android 画图类View与SurfaceView之学习
在开发游戏开发中,android相应的提供了几个重要的模块: 1.显示界面的视图: Android 提供 View 和 SurfaceView 2.控制游戏整体结构: android 提供 Acti ...