《C++ Primer Plus》学习笔记2】的更多相关文章

简介 本笔记目前已包含<C++ Primer>中的绝大部分内容,但尚有部分小节有所缺漏,如 19.1.19.2 节的笔记尚未整理,会持续更新. 本项目中的学习笔记是在学完一章内容后,对其要点进行提炼后记下的笔记.笔记内容包含我学习时认为需要记忆的知识点.   笔记适用对象 看过一遍<C++ Primer>,可以查看本笔记对学习内容进行复习和梳理. 正在看<C++Primer>,自己没有精力或不想记笔记,可以每看完一章书籍,再看一遍笔记以梳理学习内容. 需要查阅<C…
记录自己学习C Primer Plus的学习笔记 第一章 C语言高效在于C语言通常是汇编语言才具有的微调控能力设计的一系列内部指令 C不是面向对象编程 编译器把源代码转化成中间代码,链接器把中间代码和其他代码合并,生成可执行文件 第二章 main函数总是第一个被调用的函数 include预处理器指令 声明,所有变量都必须先声明才能使用,最初的规则规则变量声明需在块的顶部 C语言通过赋值运算符而不是赋值语句来完成赋值操作,听起来很别扭,赋值语句其实就是赋值表达式+分号 第三章 由于现在16位机已经…
最近在学C++,在<C++ Primer>第五版的3.1节中说到使用using声明来使用命名空间中的成员,<C++ Primer>中这样写道: 有了using声明就无须专门的前缀(形如命名空间::)也能使用所需的名字了.using声明具有如下的形式: using namespace::name; 一旦声明了上述语句,就可以直接访问命名空间中的名字. 这样,形如书中所说 #include <iostream> using std::cin; using std::cout…
<C++Primer>(第五版)中,3.4.1的例题中使用一个名为text的字符串向量存放文本文件中的数据,输出text中的内容,刚开始我这样写: #include <iostream> #include <string> #include <vector> #include <iterator> using namespace std; int main(){ string text("name"); for (auto i…
<C++ Primer>(第五版)中计算vector对象中的索引这一小节中,举例要求计算各个分数段各有多少个成绩. 代码如下: #include <iostream> #include <string> #include <vector> using namespace std; int main(){ vector<unsigned> scores(, ); unsigned grade; while (cin >> grade){…
练习<C++ Primer>中的3.14节时,当敲入: #include <iostream> #include <string> using namespace std; int main(){ string word; vector<string> text; while (cin >> word) text.push_back(word); ; } 程序会报错: error: use of undeclared identifier 've…
第13章 拷贝控制 使用default:=defult只能修饰默认构造函数或拷贝控制成员,显式地要去编译器生成合成的版本. 使用delete:=delete通知编译器不希望定义这些成员,禁止试图使用它的操作,通常的用途是禁止拷贝控制成员,或引导函数匹配. 析构函数不能是delete的,如果删除了析构函数,我们只能动态分配这种类型,并且不能释放这些对象.(非动态类型会被系统自动释放) 定义行为像值的类:如果将一个对象赋予它自己,赋值运算符必须能正确工作(对象内含指针的时候):大多数赋值运算符组合了…
第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中   2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进行读写,用非const引用的方式传递这个流对象.(因为要对IO对象进行读写) 条件状态:IO标准库管理一系列条件状态成员,用来标记给定的IO对象是否处于可用状态,或碰到了哪种特定的错误.流的状态由bad.fail.eof和good操作揭示:clear和setstate操作用于改变条件成员的状态. 输…
第2章  整型的赋值:当我们试着把一个超出其范围的值赋给一个指定类型的对象时,结果如何?答案取决于类型是signed还是unsigned的.对于unsigned,编译器会将该值对unsigned类型的可能取值数目求模然后取所得值:对于signed类型,未定义行为,很多处理器处理方式和unsigned类似. 字符串字面值的连接:std::cout << "multi-line" L"literal " << std::endl;结果未定义,即连…
1. C的左值用是指用于标志一个特定的数据对象的名字或表达式.“数据对象”是泛指数据存储的术语. 赋值运算符的左边应该是以个可以修改的左值. 右值是指可赋给可修gia的左值的量.右值可以是常量.变量或者任何可以产生一个值的表达式.. 2.对于下面的语句 butter =25.0 + 6.0*n/scale 运算顺序是先找到第一个*或/号,得到结果,再找第二个*或/号,然后才找第一个+或-号 3.一个顺序点(sequence point)是程序中执行的一点:在该点处,所有的副作用都在进入下一点之前…