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#学习笔记》
前言 起初开始写博文主要是记录学习过程中对学到内容的自我总结和理解,同时也希望本人的理解可以帮助到一些走在学习路上的朋友.但是令我没有想到的是,我总结的博文得到了广大园友的评论和支持,正是博友的支持, ...
随机推荐
- Shell遍历文件,对每行进行正则匹配
Shell查看文件的最后5行,并对每行进行正则匹配,代码如下: #!/bin/sh pattern="HeartBeat" /home/test/log/log_20150205. ...
- 转:有关Java泛型的类型擦除(type erasing)
转载自:拈花微笑 自从Java 5引入泛型之后,Java与C++对于泛型不同的实现的优劣便一直是饭后的谈资.在我之前的很多training中,当讲到Java泛型时总是会和C++的实现比较,一般得出的结 ...
- motan源码分析二:使用spi机制进行类加载
在motan的源码中使用了很多的spi机制进行对象的创建,下面我们来具体分析一下它的实现方法. 1.在实际的jar包的\META-INF\services目录中引入相关的文件,例如下图中,我解压了co ...
- java cmd常用命令
熟悉Java的常用命令 面试例题11:使用jar命令. 请使用jar命令,将test文件夹压缩成.jar文件,并简述其压缩包的结构. 考点:对于Java程序员来说,更多情况下是使用集成Java开发工具 ...
- Guava Collect
Guava是什么 进入新公司就会接触一些新的东东,Guava就是一个,Guava是Google的一个开源类库,丰富了JDK的API,并且使用起来非常方便,本文介绍的是Guava collect包下的一 ...
- Example of how to use both JDK 7 and JDK 8 in one build.--reference
JDK 8 Released Most of us won’t be able to use/deploy JDK 8 in production for a looong time. But tha ...
- ANDROID内存优化(大汇总——中)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...
- js进制转换
var n = 17; var n2 = n.toString(2); var n8 = "0" + n.toString(8); var n16 = "0x" ...
- vim命令---存阅
命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim ...
- IO-文件 File 复制 读写 总结
一定要注意: 传入的参数,应该是包含文件名的完整路径名,不能把一个文件复制到[文件夹]中,因为[文件夹]本身是不能有输入输出流的,只能复制到一个[文件]中,否则会报异常. 以字节流读写的三种方式 pu ...