Chapter1(预科)--C++Prime笔记】的更多相关文章

心得体会: 因为之前一直在用在学C,因此在看完C++Prime第一章后,就有中在一个培训班中,一个老师用一个简单的项目来带你了解这种语言的特性的感觉.当然这个告诉是在让你脑子固化接受一些点的前提下. 感觉到与C的不同之处有如下几点: 1.增加了命名空间的概念,使命名不会冲突 2.增加了类的概念,以面向对象的方式编程(std::cout,std::cin这些都包括在这里面) 1.当执行完一个程序后,可以同过 echo $?的命令获取此程序主函数的返回值. 2.一个流就是一个字符序列,术语流的概念想…
1.重载函数,也就是说一个名字可以对应几个不同的函数. 2.内置类型的未初始化局部变量将产生未定义的值. 3.局部静态对象在程序执行路径第一次进过对象定义语句时初始化,并且直到程序终止才被销毁. 内置类型的局部静态变量初始化为0. 4.函数的声明也称函数原型. 5.含有函数声明的头文件应该被包含到定义函数的源文件中.(来让编译器验证函数的定义和声明是否匹配) 6.熟悉C语言的程序员常常使用指针类型的形参访问函数外部的对象.在C++语言中,建议使用引用类型的形参代替指针. 7.如果函数无需改变引用…
数据类型选择的准则: ①当明确知晓数值不可能为负时,选用无符号类型. ②使用int执行整数运算.在实际应用中,short常常显得太小而long一般和int有一样的尺寸.如果运算范围超过int的表示范围,则选用long long. ③在算术表达式中不要使用char或bool,只有在存放字符或布尔值时才使用它.因为类型char在一些机器上是有符号的,而在一些机器上又是无符号的,所以使用char进行算术运算特别容易出问题.如果真的需要使用一个不大的整数,那么明确指出它的类型是signed char还是…
1.分配再静态或栈内存中的对象由编译器自动创建销毁. 2.C++中动态内存的管理是通过 new:前者为对象非配空间并返回一个指向该对象的指针. delete:接受一个动态对象的指针,摧毁该对象,并释放与之关联的内存. 智能指针:负责自动释放所指对象,都定义在memory头文件中 shared_ptr:允许多个指针指向同一个对象 unique_ptr:独占所指对象. weak_ptr:弱引用,指向shared_ptr所指的对象. 3.make_shared函数是最安全的分配和使用动态内存的方法.…
1.关联容器: map关键字-值对,经常被称为关联数组 set中每个元素只有一个关键字,即只保存关键字的容器 ①允许重复的关键字的容器名字都包含multi. ②不保持关键字顺序存储的容器的名字都以但粗unordered开头. ③无序容器以哈希函数来组织元素. ④关联容器的迭代器都是双向的. map   set    multimap    multiset    / 无序集合   unordered_map  unordered_set     unordered_multimap    uno…
关键:算法通过在迭代器上进行操作来实现类型无关.算法不改变所操作序列的大小. 1.算法大多都定义在algorithm头文件中,标准库还在头文件numeric中定义了一组数值泛型算法. 2.泛型算法永远也不会改变底层容器的大小. 3.用一个单一迭代器表示第二个程序的算法都假定第二个序列至少与第一个一样长. 4.插入迭代器:当我们通过一个插入迭代器赋值时,一个与赋值号右侧值相等的元素被添加到容器中. 5.多个算法都提供所谓的拷贝版本.这些算法计算新元素的值,但不会将它们放置在输入序列的末尾,而是创建…
PS:删除元素的成员函数并不检查其参数.在删除元素之前,程序员必须确保它们是存在的. 1.迭代器的范围是[begin,end)左闭右开. 2.对构成迭代器的要求: ①它们指向同一个容器中的元素或者容器的最后一个元素之后的位置. ②end不在begin之前. 3.当将一个容器初始化为另一个容器的拷贝的时候,两个容器的容器类型和元素类型都必须相同.但是,当传递迭代器参数来拷贝一个范围的时候,新容器和原容器中的元素类型也可以不同,只要能将要拷贝的元素转换为要初始化的容器的元素类型就可以了. 4.为了使…
1.IO对象不能拷贝或对IO对象赋值,进行IO操作的函数通常是以引用方式传递和返回流. 2.一个流一旦发生错误,其上的后续的IO操作都会失败.代码通常应该在使用一个流之前检查它是否处于良好状态.确定一个流对象的状态的最简单的方法就是将它当作一个条件来使用.(while,for循环条件) 3.iostate类型:badbit,failbit,eofbit,goodbit 查询这四个标志位的函数: ①good,所有错误位均未置位的情况下返回true. ②fail,同good ③eof,eofbit被…
类(关键词):数据抽象(数据成员和函数成员),封装(private),构造函数,静态成员 1.判断一个类是否是抽象数据类型,可以看我们对这个类的操作是对你内的数据成员操作,自己编写相应的处理函数,还是直接通过它的接口来使用这个类,完全不用知道这个类内具体有什么数据成员. 2.当我们设计类的接口的时候,应该考虑如何才能使得类易于使用,而当我们使用类时,不应该顾及类的实现机理. 3.任何对类成员的直接访问都被看作this的隐式调用. 任何自定义this的参数或变量的行为都是非法的. 默认化的,thi…
1.指用是一个只含有一个单独的分号的语句. 什么时候用到:语法上需要一条语句但是逻辑上不需要. 2.复合语句是指用花括号括起来的语句和声明的序列,又被称为块. 3.悬垂else :规定else与离它最近的尚未匹配的if匹配. 4.case语句分支最后的break一般不要省略.如果没写break语句,最好加一段注释说明清楚程序的逻辑. 5.在switch下的case条件语句定义一个default是很有必要的,即使不准备再此标签下做任何工作,这样的目的是告诉程序的读者,我们已经考虑到了默认的情况,只…