C++ Primer 学习笔记_20_类与数据抽象(6)_深拷贝与浅拷贝、空类与空数组
一、深拷贝与浅拷贝
浅拷贝:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换而言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。
深拷贝:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些...
分类:
编程语言 时间:
2015-07-29 19:19:06
阅读次数:
247
C++ Primer 学习笔记_19_类与数据抽象(5)_初始化列表(const和引用成员)、拷贝构造函数
从概念上将,可以认为构造函数分为两个阶段执行:
1)初始化阶段;
2)普通的计算阶段。计算阶段由构造函数函数体中的所有语句组成。
一、构造函数初始化列表
推荐在构造函数初始化列表中进行初始化
1、对象成员及...
分类:
编程语言 时间:
2015-07-28 23:09:01
阅读次数:
166
引言:
构造函数确保每个对象在创建时自动调用,以确保每个对象的数据成员都有合适的初始值。
一、构造函数、默认构造函数
1、构造函数
——构造函数是特殊的成员函数
——构造函数是为了保证对象的每个数据成员都被正确初始化
——函数名和类名完全相同
——不能定义构造函数的类型(返回类型),也不能使用void
——通常情况下构造函数应声明为公有函数,...
分类:
编程语言 时间:
2015-07-28 01:01:44
阅读次数:
140
C++ Primer 学习笔记_16_类与数据抽象(2)_隐含的this指针
1、引言
在前面提到过,成员函数具有一个附加的隐含形参,即指向该类对象的一个指针。这个隐含形参命名为this.
2、返回*this
成员函数有一个隐含的附加形参,即指向该对象的指针,这个隐含的形参叫做this指针(编译器自动传递)使用this指针保证了每个对象可以拥有不同数值的数据成员,但处理这些...
分类:
编程语言 时间:
2015-07-25 20:05:05
阅读次数:
141
C++ Primer 学习笔记_17_类与数据抽象(3)_类作用域
引言:
每个类都定义了自己的新作用域与唯一的类型。即使两个类具有完全相同的成员列表,它们也是不同的类型。每个类的成员不同与任何其他类(或任何其他作用域)的成员。
一、类作用域中的名字查找
1)首先,在使用该名字的块中查找名字的声明。只考虑在该项使用之前声明的名字。
2)如果在1)中找不到,则在包...
分类:
编程语言 时间:
2015-07-25 20:03:02
阅读次数:
177
C++ Primer 学习笔记_15_类与数据抽象(1)_类的定义和声明
在C++中,用类来定义自己的抽象数据类型。通过定义类型来对应所要解决的问题中的各种概念,可以使我们更容易编写、调试和修改程序。可以使得自己定义的数据类型用起来与内置类型一样容易和直观。
看一下Sales_item类:
class Sales_item
{
private:
std::string isbn;...
分类:
编程语言 时间:
2015-07-24 20:51:20
阅读次数:
221
C++ 接口(抽象类)接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所...
分类:
其他好文 时间:
2015-06-14 13:45:45
阅读次数:
148
数据抽象:是指定义数据和函数成员的能力;
封装:是指从常规访问中保护类成员的能力。
接口:成员函数定义了类的接口。通过将定义类所用到的数据和成员函数设置维为private来封装类。
第十二章:
类1、 构造函数的初始化式只在构造函数的定义中而不是声明中指出。
2、 使用构造函数的初始化列表与在构造函数体中对类的成员变量进行赋值的区别:本质就在于前者是对变量进行初始化,而后者是对变量进行赋值。...
分类:
编程语言 时间:
2015-04-10 17:59:40
阅读次数:
156
复制控制--消息处理示例说明: 有些类为了做一些工作需要对复制进行控制。为了给出这样的例子,我们将概略定义两个类,这两个类可用于邮件处理应用程序。Message类和 Folder类分别表示电子邮件(或其他)消息和消息所出现的目录,一个给定消息可以出现在多个目录中。Message上有 save和 remove操作,用于在指定Folder中保存或删除该消息。数据结构: 对每个Message...
分类:
编程语言 时间:
2014-05-04 17:46:17
阅读次数:
510
复制控制--管理指针成员引言: 包含指针的类需要特别注意复制控制,原因是复制指针时只是复制了指针中的地址,而不会复制指针指向的对象! 将一个指针复制到另一个指针时,两个指针指向同一对象。当两个指针指向同一对象时,可能使用任一指针改变基础对象。类似地,很可能一个指针删除了一对象时,另一指针的用户还认为基础对象仍然存在。指针成员默认具有与指针对象同样的行为。 大多数C++类采用以下三种方法...
分类:
编程语言 时间:
2014-05-04 17:45:43
阅读次数:
458