随笔分类 -  02_C++&C

摘要:对于姓名可以使用字符数组来表示,但这将限制姓名的长度。当然,还可以使用char指针和动态内存分配,但这要求提供大量的支持代码。有一个好的方法就是使用一个他人开发好的类的对象来表示。如果C++库提供了合适的类,实现起来将更简单。C++库确实提供了一个这样的类,它就是valarray。 valarray 阅读全文
posted @ 2019-02-23 12:19 Grooovvve 阅读(350) 评论(0) 推荐(0)
摘要:C++的主要目的是促进代码重用。 公有继承是实现这一目标的机制之一; 本身是另一个类的成员,这种方法称为包含、组合、层次化。 另一种方法是使用私有、保护继承。 通常包含、私有继承和保护继承用于实现has-a关系,即新的类型包含另一个类的对象。 多重继承使得能够使用两个或更多的基类派生出新的类,将基类 阅读全文
posted @ 2019-02-23 12:17 Grooovvve 阅读(157) 评论(0) 推荐(0)
摘要:友元和类的关系还可以更复杂。 举个例子,假设出现了交互式遥控器,交互式遥控器能够让您回答电视节目中的问题,如果回答错误,电视将在控制器上产生嗡嗡声。 这个例子的问题,可以使用新的友元关系来解决。我把它叫做相互的友情。 即一些Remote方法能够像前面那样访问Tv对象,而一些Tv方法也能影响Remot 阅读全文
posted @ 2019-02-23 11:23 Grooovvve 阅读(316) 评论(0) 推荐(0)
摘要:接着上一篇《友元是什么》中,我们发现Remote友元类的大多数方法都是用Tv类的公有接口实现。这意味着这些方法并不是真正需要友元。 事实上唯一直接访问Tv成员的Remote方法是Remote::set_chan(),因此它是唯一需要作为友元的方法。 确实可以仅让特定的类成员成为另一类的友元。 这种做 阅读全文
posted @ 2019-02-23 11:07 Grooovvve 阅读(224) 评论(0) 推荐(0)
摘要:友元函数:不是类的成员函数,但是能够访问类的私有数据成员。 之前有个矛盾就是规定非成员函数不能直接访问类的私有数据,但是这会儿却可以,但那只是针对常规非成员函数而言,特殊的非成员函数就可以访问类的私有数据——友元函数。 友元函数就是这么特殊,虽然在类中声明,却不是类的成员函数,这是因为加了前缀fri 阅读全文
posted @ 2019-02-22 22:41 Grooovvve 阅读(442) 评论(0) 推荐(0)
摘要:派生类和基类之间的特殊关系是基于C++继承的底层模型的。 实际上,C++有3种继承方式:公有继承、保护继承、私有继承。 公有继承是最常见的关系,它建立一种is-a的关系,即派生类对象也是一种基类,可以对基类对象执行的任何操作,也可以对派生类对象执行。is-a其实是is-a-kind-of的缩写。 h 阅读全文
posted @ 2018-12-16 14:44 Grooovvve 阅读(417) 评论(0) 推荐(0)
摘要:派生类和基类的概念及派生类构造函数的原理: 创建一个叫做TableTennisPlayer的基类,记录会员的名字和是否有球桌。 接下来声明一个派生类: 派生类不能访问基类的私有成员,而必须通过基类方法进行访问。 因此派生类构造函数必须使用基类构造函数; 创建派生类对象时,程序首先创建基类对象。从概念 阅读全文
posted @ 2018-12-16 12:26 Grooovvve 阅读(1062) 评论(0) 推荐(0)
摘要:什么是引用 引用变量是已定义变量的别名。 如何定义引用变量: int rats; int & rodents = rats; 其中&不失地址运算符,而是类型标识符的一部分。就行声明char*是指的是指向char的指针一样。 int &指的是指向int的引用。 引用看起来和指针很类似,但是还是不太一样 阅读全文
posted @ 2018-12-14 09:10 Grooovvve 阅读(251) 评论(0) 推荐(0)
摘要:在C++中,静态成员是属于整个类的而不是某个对象。 静态成员变量只存储一份供所有对象共用,所以在所有对象中都可以共享它。 使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。 静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即<类名>:: 阅读全文
posted @ 2018-12-13 20:25 Grooovvve 阅读(248) 评论(0) 推荐(0)
摘要:初级阶段 1、C语言 数据类型、变量、内存布局、指针基础; 字符串、一维数组、二维数组; 一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针; 结构体、文件的使用; 动态库的封装和设计; 函数指针回调函数。 2、C++语言 面向对象编程思想; 类的封装,构造和析构、静态成员、对象管理; 阅读全文
posted @ 2018-12-13 09:33 Grooovvve 阅读(1537) 评论(0) 推荐(0)
摘要:第一、先了解基本概念介绍: 虚函数、多态、继承都是紧密相关的概念。而继承是所有概念的基础; 继承的概念:是面向对象编程的三大特性之一(另外两个是:多态和封装);继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。 多态的含义是什么?简单来讲就是将接口与实现进行分离。虽然接口一样,但是 阅读全文
posted @ 2018-12-13 09:03 Grooovvve 阅读(379) 评论(0) 推荐(0)
摘要:根据编程的问题匹配合适的数据类型。数据项连接构成了链表,定义了一个结构代表单独的项。设计了一些方法把一系列结构构成一个链表。本质上,我们使用C语言的功能设计了一种符合程序要求的新的数据类型。但是上述的做法不系统。我们要使用更系统的方法定义数据类型。 类型指两种信息:属性和操作。 定义一个新的数据类型 阅读全文
posted @ 2018-11-17 21:03 Grooovvve 阅读(901) 评论(0) 推荐(0)
摘要:关键字、标识符、宏、预定义、预处理、编译、替换、预处理指令、 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 标识符: 标识符(identifier)是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计 阅读全文
posted @ 2018-11-15 20:16 Grooovvve 阅读(851) 评论(0) 推荐(0)
摘要:存储类别分三大类: 静态存储类别 自动存储类别 动态分配内存 变量、对象 >内存管理 内存考虑效率(时间更短、空间更小) 作用域 链接、 >空间 存储器 >时间 其实存储类别(时间、空间)和数据类型 >目的都是为了描述变量(数据对象) 还有新的属性描述变量: 恒常性、易变性 >用到类型限定符的技术手 阅读全文
posted @ 2018-11-14 11:23 Grooovvve 阅读(329) 评论(0) 推荐(0)
摘要:复杂的数据类型 一般的步骤: 1、声明模板 2、定义变量,分配内存空间 3、初始化 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 标记、标识符、标签 +++++++++++++++++++++++++ 阅读全文
posted @ 2018-11-14 11:18 Grooovvve 阅读(516) 评论(0) 推荐(0)
摘要:C允许用户自定义数据形式。 虽然我们常用一些简单的数据形式,但是根据需要有时候会用到复杂的形式。 那么久会涉及定义一些复杂的声明。定义复杂声明之前,就必须能看懂复杂的声明。 这就需要了解一些规则和约定: 符号 含义 * 表明一个指针 () 表明一个函数 [] 表明一个数组 +++++++++++++ 阅读全文
posted @ 2018-11-14 11:16 Grooovvve 阅读(238) 评论(0) 推荐(0)
摘要:typedef工具是一个高级数据特性。利用typedef可以为某一类型自定义一个新的名称。这样可以提高程序的可读性,可移植性,向用户表明特定用途。 typedef没有创建任何新的类型,它只是为某个已存在的类型增加了一个方便使用的标签。 typedef通常用于给复杂的类型命名。 >增强了可读性 typ 阅读全文
posted @ 2018-11-14 11:12 Grooovvve 阅读(467) 评论(0) 推荐(0)
摘要:通常用类型和存储类别来描述一个变量。 C90还增加了两个属性:恒常性(constancy)、易变性(volatility); 分别用关键字const和volatile来声明。 这两个关键字创建的类型是限定类型(qualified type)。 C99标准新增了第3个限定符:restrict,用于提高 阅读全文
posted @ 2018-11-14 11:02 Grooovvve 阅读(1197) 评论(0) 推荐(0)
摘要:读取/写入 相对于文件而言 输入/输出 相对于程序/内存而言 一切皆文件,键盘、显示屏也是文件,只不过是特殊的标准文件; 标准文件:标准输入、标准输出、标准错误; >对应的文件指针:stdin、stdout、stderr; >键盘、显示器 ++++++++++++++++++++++++++++++ 阅读全文
posted @ 2018-11-13 17:33 Grooovvve 阅读(594) 评论(0) 推荐(0)
摘要:第12章 存储类别、链接和内存管理 通过内存管理系统指定变量的作用域和生命周期,实现对程序的控制。合理使用内存是程序设计的一个要点。 12.1 存储类别 C提供了多种不同的模型和存储类别,在内存中储存数据。 被储存的每一个值都占用一定的物理内存;C语言把这样一块内存称为对象(object)。 对象可 阅读全文
posted @ 2018-11-11 11:31 Grooovvve 阅读(732) 评论(0) 推荐(0)