题解
文章平均质量分 88
黑の旋风
有兴趣的老铁们欢迎关注公众号:gh_7bad42dfce12,微博文章同步更新至微信公众号~
展开
-
《C++编程思想》 第十二章 动态对象创建 (原书代码+习题+解答)
一.相关知识点重载new和delete 当创建一个new表达式时有两件事发生。首先,使用运算符new分配内存,然后调用构造函数。在delete表达式里,调用析构函数,然后使用运算符delete释放内存。我们永远无法控制构造函数和析构函数的调用(否则我们可能意外地搅乱它们),但可以改变内存分配函数运算符new和delete。被new和delete使用的内存分配系统是为通用目的原创 2015-08-09 22:20:52 · 790 阅读 · 0 评论 -
《C++编程思想》 第十四章 多态和虚函数 (原书代码+习题+讲解)
一.相关知识点函数调用捆绑 把函数体与函数调用相联系称为捆绑(binding)。当捆绑在程序运行之前(由编译器和连接器)完成时,称为早捆绑。我们可能没有听到过这个术语,因为在过程语言中是不会有的:C编译只有一种函数调用,就是早捆绑。上面程序中的问题是早捆绑引起的,因为编译器在只有 instrument地址时它不知道正确的调用函数。解决方法被称为晚捆绑,这意味着捆绑在运行时发生,原创 2015-08-11 23:20:18 · 1002 阅读 · 1 评论 -
《C++编程思想》第六章 输入输出流介绍(原书代码+习题+解答)
操纵算子 这里已经添加了一个新的元素:一个称作 endl的操纵算子。一个操纵算子作用于流上,这种情况下,插入一新行并清空流(消除所有存储在内部流缓冲区里的还没有输出的字符)。也可以只清空流:cout另外有一个基本的操纵算子把基数变为 oct (八进制), dec (十进制)或hex (十六进制):cout有一个用于提取的操纵算子“跳过”空格:cin>>ws;还原创 2015-07-30 11:16:11 · 2830 阅读 · 0 评论 -
《C++编程思想》第八章 内 联 函 数 (原书代码+知识点+习题+解答)
一.相关知识点任何在类中定义的函数自动地成为内联函数,但也可以使用inline关键字放在类外定义的函数前面使之成为内联函数。但为了使之有效,必须使函数体和声明结合在一起,否则,编译器将它作为普通函数对待。因此inline int PlusOne(int x);没有任何效果,仅仅只是声明函数(这不一定能够在稍后某个时候得到一个内联定义)。成功的方法如下:inline int Plus原创 2015-08-01 01:25:18 · 1270 阅读 · 0 评论 -
《C++编程思想》 第十一章 运算符重载 (原书代码+习题+解答)
一.相关代码1./*运算符重载语法*//*OPOVER.cpp*//*这两个重载的运算符被定义为内联成员函数。对于二元运算符,单个参数是出现在运算符右侧的那个。当一元运算符被定义为成员函数时,没有参数。成员函数被运算符左侧的对象调用。对于非条件运算符(条件运算符通常返回一个布尔值),如果两个参数是相同的类型,希望返回和运算相同类型的对象或引用。如果它们不是相同类型,它作什么样的原创 2015-08-08 23:33:13 · 1069 阅读 · 0 评论 -
《C++编程思想》第三章 隐藏实现 (原书代码+习题+解答)
一.相关知识点 1. 在C++中,存取控制并不是面向对象的特征,但它为类的创建者提供了很有价值的访问控制。类的用户可以清楚地看到,什么可以用,什么应该忽略。更重要的是,它保证了类的用户不会依赖任何类的实现细节。有了这些,我们就能更改类的实现部分,没有人会因此而受到影响,因为他们并不能访问类的这一部分。一旦我们有了更改实现部分的自由,就可以在以后的时间里改进我们的设计,而且允许犯错误。要知道,原创 2015-07-27 15:45:45 · 893 阅读 · 0 评论 -
《C++编程思想》 第十章 引用和拷贝构造函数(原书代码+知识点+习题+解答)
一.相关知识点使用引用时有一定的规则:1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指针则可以在任何时候指向另一个对象。)3) 不可能有NULL引用。必须确保引用是和一块合法的存储单元关连。仅当准备用传值的方式传递类对象时,才需要拷贝构造函数。如果不需要这么做,就不要拷原创 2015-08-03 20:27:48 · 826 阅读 · 0 评论 -
《C++编程思想》第二章 数 据 抽 象(原书代码+习题+答案)
相关代码如下:1./*声明与定义的区别*/#include using namespace std;extern int i;//声明extern float f(float);//声明float b;//定义+声明float f(float a)//定义{ return a + 1.0;}int i;//定义int h(int x)//定义+声明{ r原创 2015-07-27 01:17:43 · 1024 阅读 · 0 评论 -
《C++编程思想》第四章 初始化与清除(原书代码+习题+解答)
相关代码:1.#include class tree{ int height;public: tree(int initialHeight); ~tree(); void grow(int years); void printsize();};tree::tree(int initialHeight){ height = initialHeight;}tree原创 2015-07-28 00:01:42 · 1143 阅读 · 0 评论 -
《C++编程思想》第五章 函数重载与缺省参数 (原书代码+习题+解答)
一.相关知识点 在使用缺省参数时必须记住两条规则。第一,只有参数列表的后部参数才可是缺省的,也就是说,我们不可以在一个缺省参数后面又跟一个非缺省的参数。第二,一旦我们开始使用缺省参数,那么这个参数后面的所有参数都必须是缺省的。(这可以从第一条中导出。) 在C++中,在函数定义时,我们并不一定需要标识符,像:void f(int X, int,float f) {原创 2015-07-28 14:29:00 · 977 阅读 · 0 评论 -
《C++编程思想》 第七章 常 量 (原书代码+习题+解答)
一.相关知识点 在 C语言中可以选择这样书写:const bufsize; 这样写在C++中是不对的,而 C编译器则把它作为一个声明,这个声明指明在别的地方有存储分配。因为C默认const是外部连接的, C++默认const是内部连接的,这样,如果在 C++中想完成与C中同样的事情,必须用extern把连接改成外部连接:extern const bufs原创 2015-07-30 23:43:22 · 1085 阅读 · 0 评论 -
《C++编程思想》 第九章 命 名 控 制 (原书代码+知识点+习题+解答)
一.相关知识点 那些通常放在头文件里的名字,像常量、内联函数(inline function),在缺省情况下都是内部连接的(当然常量只有在C + +中缺省情况下是内部连接的,在 C中它缺省为外部连接)。注意连接只引用那些在连接/装载期间有地址的成员,因此类声明和局部变量并没有连接。名字空间的产生与一个类的产生非常相似:namespace MyLib{//D原创 2015-08-03 12:49:13 · 871 阅读 · 0 评论 -
《C++编程思想》 第十三章 继承和组合 (原书代码+习题+解答)
一.相关知识使用其他人已经创建并调试过的类: 关键是使用类而不是更改已存在的代码。这一章将介绍两种完成这件事的方法。第一种方法是很直接的:简单地创建一个包含已存在的类对象的新类,这称为组合,因为这个新类是由已存在类的对象组合的。 第二种方法更巧妙,创建一个新类作为一个已存在类的类型,采取这个已存在类的形式,对它增加代码,但不修改它。这个有趣的活动被称为继承,其中大量的工作由原创 2015-08-10 22:54:00 · 1010 阅读 · 0 评论