2019年1月13日

摘要: 在重新分配内存的过程中,从旧内存将元素拷贝到新内存是不必要的,更好的方式是移动元素。使用移动而不是拷贝的另一个原因源于IO类或unique_ptr这样的类。这些类包含不能被共享的资源(如指针或IO缓冲),因此,这些类型的对象不能拷贝,但是可以移动。 标准库容器、string和shared_ptr类既 阅读全文

posted @ 2019-01-13 10:41 Summer_8918 阅读(146) 评论(0) 推荐(0)

摘要: 拷贝控制和资源管理 通常,管理类外资源的类必须定义拷贝控制成员。有两种选择:可以定义拷贝操作,使类的行为看起来像一个值或者像一个指针。 类的行为像一个值,意味着它应该也有自己的状态。当我们拷贝一个像值的对象时,副本和原对象时完全独立的。改变副本不会对原对象由任何影响,反之亦然。 行为像指针的类则共享 阅读全文

posted @ 2019-01-13 10:31 Summer_8918 阅读(202) 评论(0) 推荐(0)

2019年1月11日

摘要: 学习类如何控制对象拷贝、赋值、移动或销毁时做什么。类通过一些特殊的成员函数控制这些操作,包括:拷贝构造函数、移动构造函数、拷贝赋值运算符、移动运算符以及析构函数。 当定义一个类时,我们显式或隐式地指定在此类型非对象拷贝、移动、赋值和销毁时做什么。一个类通过定义五种特殊的成员函数来控制这些操作,包括: 阅读全文

posted @ 2019-01-11 15:38 Summer_8918 阅读(237) 评论(0) 推荐(0)

2019年1月9日

摘要: 假定我们希望HasPtr的行为像一个值。即,对于对象所指向的string成员,每个对象都有一份自己的拷贝。 输出结果 阅读全文

posted @ 2019-01-09 16:38 Summer_8918 阅读(139) 评论(0) 推荐(0)

摘要: C++ Primer习题 13.13 理解拷贝控制成员和构造函数的一个好方法是定义一个简单的类,为该类定义这些成员,每个成员都打印出自己的名字。 拷贝初始化通常使用拷贝构造函数来完成。 输出结果 阅读全文

posted @ 2019-01-09 12:33 Summer_8918 阅读(162) 评论(0) 推荐(0)

2019年1月8日

摘要: 复合类型是指基于其他类型定义的类型。介绍两种复合类型:引用和指针。 C++11中新增了一种引用,“右值引用”——主要是基于内置类。使用术语“引用”时是指“左值引用”。 引用& 为对象起了另外一个名字,引用类型引用另一种类型。引用必须被初始化。一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义 阅读全文

posted @ 2019-01-08 22:53 Summer_8918 阅读(194) 评论(0) 推荐(0)

摘要: 变量提供一个具名的、可供程序操作的存储空间。对C++程序来说,变量和对象可以互换使用。 对象是具有某种数据类型的内存空间。 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值;而赋值是把对象的当前值擦除,用一个新值来代替。 列表初始化 int u{0}; int u=0; int u(0); 阅读全文

posted @ 2019-01-08 21:51 Summer_8918 阅读(84) 评论(0) 推荐(0)

摘要: 使用访问说明符加强类的封装性,两种访问说明符:private和public 定义在public说明符之后的成员在整个程序内可被访问,public成员定义类的接口; 定义在private说明符之后的成员可以被类的成员函数访问,但是不能被使用该类的代码访问,private部分封装了类的实现细节。 作为接 阅读全文

posted @ 2019-01-08 09:15 Summer_8918 阅读(126) 评论(0) 推荐(0)

2019年1月7日

摘要: 大多数编程语言通过两种方式来进一步补充其基本特性:一是赋予程序员自定义数据类型的权利,从而实现对语言的扩展;二是将一些有用的功能封装成库函数提供给程序员。 C++是一种静态数据类型语言,它的类型检查发生在编译时。因此,编译器必须知道程序中每一个变量对应的数据类型。 基本内置类型 C++定义了一套包括 阅读全文

posted @ 2019-01-07 21:11 Summer_8918 阅读(126) 评论(0) 推荐(0)

摘要: 学习一门新的程序设计语言的最好方法就是练习编写程序。 每个C++程序都包含一个或多个函数,其中一个必须命名为main。操作系统通过调用main来运行C++程序。 一个函数定义包含四个部分:返回类型;函数名;一个圆括号包围的形参列表;函数体。 在大多数系统中,main的返回值被用来指示状态。返回0表明 阅读全文

posted @ 2019-01-07 21:09 Summer_8918 阅读(276) 评论(0) 推荐(0)