c++学习笔记和思考
1、内置类型:int float等编程语言自己定义的类型
类类型:自己声明的类,即是对对象的抽象
2、const double *cp 表示cp是指向一个const类型double类型数据的指针,而非是const指针
类中形参函表后面的const反应在类中声明成员函数的形式
3、typedef string *pstring;
const pstring cstr; //该声明是把cstr定义为指向string类型对象的const指针,其中const 修饰的是pstring 。等价于 string *const cstr;
const指针可以放在类型前也可以放在类型后 string const s1; const string s2;
4、严格地说,c++没有多维数组,通常所知的多维数组就是数组的数组
5、switch结构,只能在它的最后一个case标号或default标号后面定义变量 是为了避免出现代码跳过变量的定义和初始化的情况。在这种情况下,如果需要为某个特殊的case定义变量,可以引入块语句。因为变量会在块结束前一直存在。
6、*dest++=*source++;等价于:
{
*dest=*source;
++dest;++source;
}
7、非引用新参表示对应实参的局部副本,说白了也就是变量作用域的问题 指针可以修改对应的值
与所有引用一样,引用形参直接关联到其所绑定的对象,而并非这些对象的副本
引用:作为函数参数和返回函数左值
8、引用型参数应该在能被定义为const的情况下,尽量定义为const 声明引用时,必须同时对其进行初始化
9、类的所有成员都必须在类定义的花括号里面声明,此后,就不能再为增加任何成员。类的成员函数既可以在类的定义内也可以在类的定义外定义。编译器隐式地将在类内定义的成员函数当做内联函数。类的成员函数可以访问该类的private成员
10、有多个初始化时不能使用复制初始化,合成的默认构造函数不会自动初始化内置类型的成员
11、形参与const形参的等价性仅适用与非引用形参,const的形参主要用于指针和引用参数 临时对象都是const型
12、引用总结: const 类型标识符 &变量名()
引用类型参数应该在能被定义为const的情况下,尽量定义为const
引用返回函数值:
类型标识符 &函数名(形参列表及类型说明)
{函数体}
用引用返回函数值最大的好处是在内存中不产生被返回值的副本
引用作为返回值,遵守的规则:
(1)不能返回局部变量的引用(2)不能返回函数内部new分配的内存的引用(3)可以返回类成员的引用,但最好是const(4)引用与一些操作符的重载
13、类成员函数后加const 是为不改变数据成员
c++学习笔记和思考的更多相关文章
- python学习笔记(四) 思考和准备
一.zip的坑 zip()函数接收多个可迭代数列,将数列中的元素重新组合,在3.0中返回迭代器指向 数列首地址,在3.0以下版本返回List类型的列表数列.我用的是3.5版本python, 所以zip ...
- C++ Primer 学习笔记与思考_7 void和void*指针的使用方法
(一)void的含义 void的字面意思是"无类型",void差点儿仅仅有"凝视"和限制程序的作用,由于从来没有人会定义一个void变量,让我们试着来定义: v ...
- C++ Primer 学习笔记与思考_3 ---头文件那些事儿(extern)
(一)extern在头文件里的使用方法 由于头文件包括在多个源文件里.而且变量的定义仅仅能出现一次,所以在头文件里. 仅仅能够声明不能够出现定义. 我们能够在头文件里用extern声明全局变量,这样在 ...
- JavaScript权威设计--JavaScript函数(简要学习笔记十)
1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"lik ...
- SQLServer学习笔记系列1
一.前言 一直自己没有学习做笔记的习惯,所以为了加强自己对知识的深入理解,决定将学习笔记写下来,希望向各位大牛们学习交流! 不当之处请斧正!在此感谢!这边就先从学习Sqlserver写起,自己本身对数 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 【工作笔记】BAT批处理学习笔记与示例
BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...
- 3年的坚持,最终造就著作——《Learninghard C#学习笔记》
前言 起初开始写博文主要是记录学习过程中对学到内容的自我总结和理解,同时也希望本人的理解可以帮助到一些走在学习路上的朋友.但是令我没有想到的是,我总结的博文得到了广大园友的评论和支持,正是博友的支持, ...
随机推荐
- SQL 截图
- Mac 下 Scala 平台搭建
1.先要安装 JDK,下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- [Java Concurrent] 多线程合作 producer-consumers / queue 的简单案例
在多线程环境下,通过 BlockingQueue,实现生产者-消费者场景. Toast 被生产和消费的对象. ToastQueue 继承了 LinkedblockingQueue ,用于中间存储 To ...
- Ubuntu环境下NFS服务器搭建
看到鸟哥私房菜对NFS的介绍,就想试试玩一下.看起来步骤也很简单. 1.背景名词. NFS(Network File System) 作用:让所有的Unix-like 机器通过网络共享彼此的文件 局限 ...
- java中集合杂记
HashSet类按照哈希算法来存取集合中的对象,具有很有的性能.当HashSet向集合中加入一个对象时,会调用对象的hashCode()方法获得哈希码,然后根据这个哈希码进一步计算出对象在集合中的存放 ...
- web前端面试试题总结---css篇
CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(m ...
- Oralce新建数据库、新建远程登录用户全过程
Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来说,为了避免麻烦,可以用'Database Configuration Assi ...
- Cocoa Touch 层
Cocoa Touch层包含创建 iOS应用程序所需的关键框架.上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础.在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能 ...
- Android布局属性详解剖析
View的布局显示方式有下面几种: 线性布局(LinearLayout) 相对布局(RelativeLayout) 表格布局(TableLayout) 网格视图(GridView) 标签布局(TabL ...
- JAVA中JNI的简单使用
了解JNI:JAVA因其跨平台特性而受人们喜爱,也正因此,使得它和本机各种内部联系变得很少,所以JNI(Java Native Interface)就是用来解决JAVA本地操作的一种方式.JAVA通过 ...