导读

本文仅用于记录在个人在使用C++过程中的遇到一些的疑问和概念。


目录
  1. 语法和概念基础
  2. 常用函数
  3. 编程注意
  4. 编译问题
  5. 拓展链接
1、语法和概念基础

1、块域     2、static 作用域     3、RAII       4、const char * 组合使用        5、C++命名规范(一般原则、匈牙利命名法、某公司应用实例)        6、重载overload、重写override、重定义redifining 的差别      7、初始化列表作用   8、格式化输入输出   9、template 中的class 和 typename        10、cin   11、强制类型转换   12、常见容器


0、c++教程

1、C++中的块域{}

2、static变量 及 作用域控制

3、C++资源管理的利器——RAII惯用法(“Resource Acquisition IInitialization”)

链接:http://www.cnblogs.com/hsinwang/articles/214663.html

全面介绍Windows内存管理机制及C++内存分配实例

4、char* 与 char[] 的差别 + const-char-* 的理解

链接:http://blog.csdn.net/zhuzhihai1988/article/details/7726132

5、C++命名规则: (1)   (2)  (类名以及方法名第一个字母大写,库类除外,如string。)

匈牙利命名法:   (3)   (4) (包含该法的优势实例)

某公司的C++命名规范:    (5)

6、重载overload、重写override、重定义redifining 的差别 :http://www.cnblogs.com/BeyondTechnology/archive/2010/09/20/1831441.html

7、构造函数初始化列表作用:对数据域的基本类型、对象进行赋值;还可以用于初始化 父类没有无参构造函数的情况时 的构造函数,

比如logic_error 没有无参构造函数,继承logic_error 必须在子类的 构造函数签名后面加上—— “:logic_error("Logic error happens!")”

8、格式化输入输出:http://blog.csdn.net/chenggil10/article/details/4181649

          http://wenwen.sogou.com/z/q347507263.htm

9、template 中的 class 和 typename 的区别

10、cin是istream类的一个C++预定义对象。而istream重载了void * 和!等等一些运算符,代码cin>>a之后返回还是一个cin对象的引用,此时cin会测试是否达到

文件末尾(会设置eofbit位),或者流出错(设置badbit或者failbit)。

11、C++中的 四种强制类型转换

12、1)常见容器:list,vector,deque有什么区别

  主要内容:各种顺序容器的比较,存储、操作的区别

  链接:     http://cutely606.blog.163.com/blog/static/26607977201191653517926/

  2)vector中erase用法注意事项

  主要内容:删除vector中某个特定元素(使用iterator的注意事项)

  链接:    http://blog.csdn.net/daofengdeba/article/details/7865229

2、常用函数

1、fopen函数      2、文件操作  3、产生随机数  4、各种类型转换成字符串   5、cstring、string、char* 之间互相转换


1、fopen("fileName.fileType","pattern") 可以同时打开同一个文件而不出错,原理如下:

fopen():(1)在磁盘找到指定文件

               (2)在内存中分配保存一个FILE类型结构的单元(16B或32B)

        (3)在内存中分配文件缓冲区单元(512B)

(4)返回FILE结构地址(回送给fp)

2、C常用函数: C文件流I/O操作:FILE类型

 C与C++ 文件操作的区别 总结:http://blog.sina.com.cn/s/blog_6e7fed390100z0j1.html

   C++ fstream 类的 函数eof() 使用要注意,只有当读取失败发现没啥可读时,

         才将 eofbit 位置为1:http://blog.csdn.net/shuilan0066/article/details/4669451

3、  产生随机数:链接

4、各种类型 转成字符串     链接:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621803.html

5、cstring、string、char* 之间的互相转换 :http://www.cnblogs.com/bluestorm/p/3168720.html

string 转为 char* 的三个函数  c_str()、data()、copy(p,n)的用法 :http://www.cnblogs.com/qlwy/archive/2012/03/25/2416937.html

string::c_str() 详解:http://blog.csdn.net/jinzhilong580231/article/details/7161168

3、编程注意

1、模块结束时异常结束可能原因   2、delete和delete[]    2、不要返回临时对象指针    3、返回局部结构体变量    4、以const 方式传入对象的参数,只能使用类的const函数


1、程序在 模块 结束时异常结束,有可能是 析构对象时,delete 了野指针。

解决:1、特别注意函数参数 谨慎使用 对象的值传递。对象参数最好使用引用传递。

2、若一定要使用 值传递,需要 实现 拷贝构造函数 进行深复制。

2、delete和delete[] 使用的区别

链接: http://yiyunscu.blog.163.com/blog/static/3626332020105102623649/

3、error: invalid initialization of non-const reference of type "MyString&" from a temporary of type "MyString*";

问题:MyString &Function();  无法用函数中的 MyString 的临时对象来 对 MyString 非常量引用 进行初始化

解决:不要返回栈临时对象,应该返回在堆里分配的变量。

4、返回局部结构体变量 相当于 返回一个基础类型的局部变量,不同于对象的临时变量的返回。

5、以const 方式传入对象的参数,只能使用类的const函数

4、编译问题

1、编译错误:expected type-specifier (多文件编译问题)


1、编译错误:遇到 expected type-specifier before 'XXX' 应该考虑下可能是出于什么原因导致 编译器 无法及时使用某些头文件的声明 或 没用 "命名空间 using namespace XX;"。

多文件的编译问题

从使用的角度:http://blog.csdn.net/gexiaobaohelloworld/article/details/7293230

从原理的角度:http://blog.sina.com.cn/s/blog_482f7c480100fr74.html

5、拓展链接

1、C/C++中文网

  主要内容:C++初步知识,C++基础知识

  链接:http://see.xidian.edu.cn/cpp/biancheng/cpp/rumen_1/

2、C++库介绍-标准库、类库

  链接:http://www.cnblogs.com/chio/articles/806468.html#1

C++ —— 笔记汇总的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  3. NGUI学习笔记汇总

    NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加 ...

  4. 读书笔记汇总 --- 用Python写网络爬虫

    本系列记录并分享:学习利用Python写网络爬虫的过程. 书目信息 Link 书名: 用Python写网络爬虫 作者: [澳]理查德 劳森(Richard Lawson) 原版名称: web scra ...

  5. ST官方翻译的中文应用笔记汇总

    ST官方翻译的中文应用笔记汇总 http://www.51hei.com/stm32/3382.html 官方中文AN:AN3116:STM32? 的 ADC 模式及其应用AN1015:用于提高微控制 ...

  6. Spring研磨分析、Quartz任务调度、Hibernate深入浅出系列文章笔记汇总

    Spring研磨分析.Quartz任务调度.Hibernate深入浅出系列文章笔记汇总 置顶2017年04月27日 10:46:45 阅读数:1213 这系列文章主要是对Spring.Quartz.H ...

  7. ES6 笔记汇总

    ES6 笔记汇总 二.ES6基础-let和const命令 三.变量的解构赋值 四.字符串的拓展 五.正则表达式的拓展 ...将会持续更新,敬请期待

  8. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

  9. SpringBoot+MyBatis练手项目笔记汇总

    以下是我在练习SpringBoot+MyBatis训练时候个人一些笔记汇总(可以点击跳转),献丑了,网上很多大佬的文章都比我写的详细,一些好的文章,我会将贴到各个内容中. 1. 插入数据返回id和内部 ...

  10. JQuery笔记汇总

    jQuery相关资料 官网: jQuery官网 在线API: jQuery在线API W3School:W3School-jQuery教程(中文版哦) 下载jQuery:jQuery各版本下载 jQu ...

随机推荐

  1. NPOI对excel文件的导入导出

    现理解:将一个Excel文件(工作簿-IWorkBook)看做是一个你要操作的对象,每个工作簿包含多个工作表(ISheet)对象,每个工作表中又包含多个行对象(IRow),每行又包含多个单元格(ICe ...

  2. Swift - 33 - 返回函数类型和函数嵌套

    //: Playground - noun: a place where people can play import UIKit /*---------------------------返回函数类 ...

  3. [转载]__type_traits

    在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧.具体的来说,traits就是 通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性, ...

  4. Python网页爬虫(一)

    很多时候我们想要获得网站的数据,但是网站并没有提供相应的API调用,这时候应该怎么办呢?还有的时候我们需要模拟人的一些行为,例如点击网页上的按钮等,又有什么好的解决方法吗?这些正是python和网页爬 ...

  5. android 9Path图片的使用

    Android UI设计时,经常会使用图片作为背景,比如给按钮设置背景图片时,图片会默认缩放来适应整个按钮.但是有时这种缩放效果并不是我们所需求的.而我们只是希望缩放图片的特定位置,以此来保证按钮的视 ...

  6. C#的SerialPort串口程序设计总结

    简介:微软的VS提供了SerialPort控件,也就是串行端口资源. 当然也可以添加引用 using System.IO.Ports; 通过实例化SerialPort对象就可以使用其属性和方法了. S ...

  7. 10 款强大的JavaScript图表图形插件推荐

    转自:http://www.iteye.com/news/24535 网上有很多用于绘制图表图形的免费JavaScript插件和图表库,这类插件大量出现的原因,一是人们不再依赖于Flash,二是浏览器 ...

  8. PHP面向对象(OOP)编程完全教程:10.__set(),__get(),__isset(),__unset()四个方法的应用

    一般来说,总是把类的属性定义为private,这更符合现实的逻辑.但是, 对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数”__get()”和”__set()”来获取和赋值其属性 ...

  9. 鼠标划过图片title 提示实现

    鼠标划过图片title 提示实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  10. 简单选择排序(Simple Selection Sort)的C语言实现

    简单选择排序(Simple Selection Sort)的核心思想是每次选择无序序列最小的数放在有序序列最后 演示实例: C语言实现(编译器Dev-c++5.4.0,源代码后缀.cpp) 原创文章, ...