摘要: 1:默认模板参数是指类模板中由默认的数据类型作为参数的参数,在模板定义时,还可以为默认的数据类型声明,变量,并为变量赋值。代码如下: // 9.5.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include <iostream> using namespace 阅读全文
posted @ 2017-09-22 21:44 一串字符串 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 1:默认模板参数就是在类模板定义时设置类型形式参数表中的一个类型参数的默认值,该默认值是一个数据类型。有了默认的数据类型参数后,在定义模板的新类型时就可以不进行指定。代码如下: // 9.4.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include < 阅读全文
posted @ 2017-09-22 21:34 一串字符串 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 1:使用template关键字不但可以定义函数模板,而且可以定义类模板。类模板代表一族类,它是用来描述通用数据类型或处理方法的机制,它使类中的一些数据成员和成员函数的参数或返回值可以取任意数据类型。类模板可以说是用类生成类,减少了类的定义和数量。 2:类模板的一般定义形式如下: template < 阅读全文
posted @ 2017-09-22 20:44 一串字符串 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 1:整形数和实型数编译器可以直接进行比较,所以使用函数模板后也可以直接进行比较,但如果是字符指针指向的字符串该如何处理呢?这时可以通过重载函数模板来实现。通常字符串需要库函数来进行比较,通过重载函数模板实现字符串的比较。 2:代码如下: // 9.2.cpp : 定义控制台应用程序的入口点。 // 阅读全文
posted @ 2017-09-22 20:24 一串字符串 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 1:函数模板不是一个实在的函数,因此编译器不能为其生成可执行的代码。定义函数模板只是一个对函数功能框架的描述,在具体执行时,将根据传递的实际参数决定其功能。 2:函数模板定义的一般形式如下: template <类型形式参数> 返回类型 函数名(形式参数表) { ...//函数实现 } 其中temp 阅读全文
posted @ 2017-09-22 16:46 一串字符串 阅读(2769) 评论(0) 推荐(0) 编辑
摘要: 1:在讲述类的内容时说明了隐藏数据成员的好处,但是有时类会允许一些特殊的函数直接读写其私有数据成员。 使用friend关键字可以使特定的函数或者别的类的所有成员函数对私有数据成员进行读写。这既可以保持数据的私有性,又能够使特定的类或函数直接访问私有数据。 有时普通函数需要直接访问一个类的保护或私有数 阅读全文
posted @ 2017-09-22 15:53 一串字符串 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 1:抽象类通常作为其他类的父类,如果从抽象类派生的子类是抽象类,则子类必须实现父类中的所有纯虚函数。代码如下: // 8.10.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; c 阅读全文
posted @ 2017-09-22 15:07 一串字符串 阅读(1000) 评论(0) 推荐(0) 编辑
摘要: 1:包含有纯虚函数的类称为抽象类,一个抽象类至少具有一个纯虚函数。抽象类只能作为基类派生出的新的子类,而不能在程序中被实例化(即不能说明抽象类的对象),但是可以使用指向抽象类的指针。在程序开发过程中并不是所有代码都是由软件构造师自己写的,有时候需要调用库函数,有时候分给别人写。一名软件构造师可以通过 阅读全文
posted @ 2017-09-22 12:44 一串字符串 阅读(338) 评论(0) 推荐(0) 编辑
摘要: 1:以前讲到从CBird类和CFish类派生子类CWaterBird时,在CWaterBird类中将存在两个CAnimal类的复制。那么如何在派生CWaterBird类时使其只存在一个CAnimal基类呢?C++语言提供的虚继承机制能够解决这个问题。 代码如下: // 8.8.cpp : 定义控制台 阅读全文
posted @ 2017-09-22 11:10 一串字符串 阅读(188) 评论(0) 推荐(0) 编辑