C++ Primer Chapter 1】的更多相关文章

When I start reviewing, I thought Chapter is useless. Because the title is "Getting Start" . I thought that is useless. But I found something I miss before, so I review it and found I understand something that confused me. So every parts is usef…
动态内存:之前的程序使用对象有着严格定义的生存期,会自动销毁.C++支持动态分配对象,动态分配对象的生存期和他们在哪里创建是无关的,只有当显式的被释放,这些对象才会销毁.标准库定义了智能指针对象可以自动释放内存.new在动态内存中分配空间并且返回一个指向该对象的指针,delete接受一个动态对象的指针销毁该对象并释放相关的内存使用动态内存的原因:1.程序不知需要多少对象2.程序不知道对象类型3.程序需要在多个对象之间共享数据————允许多个对象共享相同状态 忘记释放内存会导致内存泄漏,释放了被指…
拷贝 赋值 销毁 拷贝构造函数 如果一个构造函数第一个参数是自身的引用,而且任何额外参数都有默认值,则此构造函数是拷贝构造函数拷贝构造函数的第一个类型必须是引用:如果参数不是引用类型,那么调用不会成功——为了调用拷贝构造函数我们必须拷贝他的实参,而拷贝实参又要调用拷贝构造函数 如果没有类定义拷贝构造函数,编译器会自动定义一个,和成默认构造函数不同,即使我们定义了其他构造函数,编译器也会为我们合成一个拷贝构造函数.对某些类来说,合成构造函数用来阻止我们拷贝该类类型的对象,而一般情况,合成的拷贝构造…
一个函数的定义包含四个部分:返回类型(return type),函数名(function name),一个括号包含的形参列表(parameter,允许为空)以及函数体(function body). 程序源文件命名约定:无论使用命令行界面还是IDE,大多数编译器都要求程序源码存储在一个或多个文件中.程序文件通常被称为源文件(source file).在大多数系统中,源文件的名字以一个后缀为结尾,后缀是由一个英文句点后接一个或多个字符组成的.后缀告诉系统这个文件是一个C++程序.不同编译器使用不同…
3.1命名空间的using声明 using声明具有如下的形式:using namespace :: name; #include <iostream> using std :: cout; using std :: endl; int main(){ ; cout << i << endl; } 初始化string对象的方式 string s1; string s2(s1); string s2 = s1; string s3("value") st…
Project RootLet’s start by taking a look at the root folder structure.• app/• bootstrap/• vendor/• public/• .gitattributes• .gitignore• artisan• composer.json• composer.lock• phpunit.xml• server.php bootstrap• autoload.php• paths.php• start.phpThe bo…
书店程序是<c++ primer>中重要的实例,涉及大部分重要知识点,但代码分散阅读不便,下面按照章节顺序总结 Sales_item.h #ifndef SALESITEM_H // we're here only if SALESITEM_H has not yet been defined #define SALESITEM_H //#include "Version_test.h" // Definition of Sales_item class and relat…
<C++ Primer>中第15章为了讲解面向对象编程,举了一个例子:设计一个小程序,能够处理查询给定word在文件中所在行的任务,并且能够处理“非”查询,“或”查询,“与”查询.例如执行查询 one & of |the ,表示对单词one和of的查询结果取交集,然后对单词the的查询结果取并集. 书中查询的底层操作实际定义在类TextQuery中,我们在TextQuery的基础上,进一步封装并实现如下图所示的类结构,能够达到上述功能需求.类之间的结构如下图所示: 程序扼要设计如下表所…
Chapter 3.1 1. using声明具有如下的形式: using namespace::name; Chapter 3.2 1. C++标准一方面对库类型所提供的操作做了规定,另一方面也对库的实现做出了性能上的要求,所以,在一般的应用场合,标准库类型都有足够的效率. 2. 当用一个字符串字面值初始化string对象时,除了最后那个空字符外其他所有的字符都会被拷贝到新创建的string对象中去. 3. 如果使用等号初始化一个变量,实际上执行的是拷贝初始化.如果不使用等号,则执行的是直接初始…
Chapter 2.1 1. 数据类型决定了程序中数据和操作的意义. 2. C++定义了一套基本数据类型,其中包括算术类型和一个名为void的特殊类型.算术类型包含了字符.整型.布尔值以及浮点数.void无值也无操作,我们不能定义一个void类型的变量. 3. 算术类型的尺寸,也就是该类型所占的比特数,在不同机器上有所差别.下表列出了C++标准规定的最小尺寸,同时允许编译器赋予这些类型更大的尺寸: 由于比特数的不同,一个类型所能表达的最大(最小)值也是不同的. 4. C++语言规定,一个int至…