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#学习笔记》
前言 起初开始写博文主要是记录学习过程中对学到内容的自我总结和理解,同时也希望本人的理解可以帮助到一些走在学习路上的朋友.但是令我没有想到的是,我总结的博文得到了广大园友的评论和支持,正是博友的支持, ...
随机推荐
- 使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)
测试: 经前天的测试,最终还是没有明显的定夺到底是驱动的问题,还是打印机的问题.但是按照可能性来排查,最明显的一点就是其他测试环境不变的情况下增加一张图片,就可以打印出表格线,我始终觉得这里是突破点, ...
- .NET框架设计—常被忽视的框架设计技巧
阅读目录: 1.开篇介绍 2.元数据缓存池模式(在运行时构造元数据缓存池) 2.1.元数据设计模式(抽象出对数据的描述数据) 2.2.借助Dynamic来改变IOC.AOP动态绑定的问题 2.3.元数 ...
- python_安装工具easy_install和pip
前言 用python就必须知道easy_install和pip这两个东西啦 easy_insall提供了在线一键安装模块或包的方便方式,而pip是easy_install的改进版,提供更好的提示信息, ...
- 点击按钮弹出div,留用
<input type="button" onclick="document.getElementById('div').style.display=(docume ...
- Spring 3 来创建 RESTful Web Services
Spring 3 创建 RESTful Web Services 在 Java™ 中,您可以使用以下几种方法来创建 RESTful Web Service:使用 JSR 311(311)及其参考实现 ...
- Linux系统下查看某文件修改的时间戳
Linux系统下查看某文件修改的时间戳查看文件时间戳命令:stat awk.txt File: `awk.txt' Size: 20 Blocks: 8 I ...
- CVE-2014-0196(马拉松赛跑bug)
/* * CVE-2014-0196: Linux kernel <= v3.15-rc4: raw mode PTY local echo race * condition * * Sligh ...
- Ubuntu12.04下使用valgrind内存测试工具测试Qt程序
1. 到官网http://valgrind.org/downloads/上下载valgrind最新版本: 2. 解压源码,执行./configure;make;make install后,默认安装到/ ...
- JVM内存回收对象及引用分析
自动垃圾回收是Java相较于C++的一个重要的特点,想了解JVM的垃圾回收机制,首先我们要知道垃圾回收是回收什么地方的垃圾,我在我的上一篇博客<JVM内存区域划分>里面有写到JVM里面的内 ...
- 30款jQuery常用网页焦点图banner图片切换 下载 (转)
1.jquery 图片滚动特效制作 slide 图片类似窗帘式图片滚动 查看演示 2.jquery幻灯片插件带滚动条的圆形立体图片旋转滚动 查看演示 3.jQuery图片层叠旋转类似洗牌翻转图片幻灯片 ...