2013年8月22日

继承与派生:赋值兼容规则(转)

摘要: 原文地址:http://www.jizhuomi.com/software/108.html 上一节鸡啄米讲了虚基类及其派生类的构造函数,本节来讲讲赋值兼容规则。前面说过,派生类如果是从基类公有继承的,则它会包含基类中除构造函数和析构函数外的所有成员,基类的公有成员也成为派生类的公有成员,又因为对象只能访问类的公有成员,所以基类对象具有的功能,派生类对象都有。这样就引出了赋值兼容规则。赋值兼容规则就是指在基类对象可以使用的地方都可以用公有派生类对象来代替。注意必须是公有派生类。赋值兼容规则中的代替有三种方式。鸡啄米通过一个例子分别说明。 假设有基类Base,类Child是Base的公有派生类, 阅读全文

posted @ 2013-08-22 16:01 大浪 淘沙 阅读(640) 评论(0) 推荐(0) 编辑

继承与派生:虚基类及其派生类的构造函数(转)

摘要: 原文地址:http://www.jizhuomi.com/software/106.html 鸡啄米在编程入门系列的上一讲中讲了作用域分辨符。今天主要讲解虚基类及其派生类的构造函数。 1.虚基类的概念及用法上 一讲中说过,如果派生类的全部或者部分基类有共同的基类,那么派生类的这些直接基类从上一级基类继承的成员都具有相同的名称,定义了派生类的对象后,同名 数据成员就会在内存中有多份拷贝,同名函数也会有多个映射。访问这些同名成员时,为了唯一标识它们可以使用上一讲中的作用域分辨符,也可以使用虚基类技 术。我们将派生类直接基类的共同基类声明为虚基类后,派生类从不同的直接基类继承来的同名数据成员在内存中 阅读全文

posted @ 2013-08-22 15:11 大浪 淘沙 阅读(665) 评论(0) 推荐(0) 编辑

2013年8月21日

重载函数与函数模板(转)

摘要: 原文地址:http://www.jizhuomi.com/software/45.html hello,everyone,鸡啄米上一节讲到的是函数的参数传递和内联函数,这一讲鸡啄米会给大家讲点稍微有点难度的函数重载和函数模板,如果大家把之前的编程入门课程都掌握了,这一讲的内容自己上机试下就很容易理解了。一.重载函数 现实生活中的一个词可能有多种含义,比如,洗衣服、洗头、洗车,都有一个洗字,但是他们的操作方式是不一样的。函数也一样,有时候它们的操作不完全一样但是名字一样,这就是重载函数。 重载函数就是,两个以上的函数取相同的函数名,但是函数形参的个数或者类型不同,编译器会根据实参与形参的类型和个 阅读全文

posted @ 2013-08-21 17:28 大浪 淘沙 阅读(487) 评论(0) 推荐(0) 编辑

继承与派生:作用域分辨符(转)

摘要: 原文地址:http://www.jizhuomi.com/software/104.html 鸡啄米在编程入门系列的前两节中讲了派生类的构造函数和析构函数,现在来讲讲通过作用域分辨符访问派生类成员的问题。 访问派生类的成员有可见性和唯一性两个问题,我们只能访问到具有唯一性的可见成员。先说说可见性的问题。前面C++编程入门系列之十八的作用域和可见性中 讲过,如果有两个以上具有包含关系的作用域,外层作用域中的标识符在内层作用域中没有同名标识符则它在内层作用域中也是可见的,但是如果在内层作用域中存 在同名标识符则外层的标识符被屏蔽,这也叫做同名覆盖。派生类在继承时,基类的成员和派生类的新增成员都有类 阅读全文

posted @ 2013-08-21 17:00 大浪 淘沙 阅读(447) 评论(0) 推荐(0) 编辑

作用域和可见性(转)

摘要: 原文地址:http://www.jizhuomi.com/software/59.html上一讲鸡啄米大概介绍了下UML知识,这一讲开始鸡啄米就要讲讲C++程序设计中必知的一些结构和语法的知识点。这些都是很基础但是很有必要掌握的知识,能够很好的利用这些知识就表示你有一些内功了哦。 这些必知的知识包括作用域、可见性和生存期,还有局部变量、全局变量、类的数据成员、静态成员及友元和数据等。这一讲鸡啄米会给大家详细讲讲作用域和可见性。作用域是用来表示某个标识符在什么范围内有效,可见性是指标识符是否可见,可引用。 1.作用域作用域是这样一个区域,标识符在程序的这个区域内是有效的。C++的作用域主要有四种 阅读全文

posted @ 2013-08-21 16:53 大浪 淘沙 阅读(591) 评论(0) 推荐(0) 编辑

继承与派生:派生类的析构函数(转)

摘要: 原文地址:http://www.jizhuomi.com/software/102.html 鸡啄米在C++编程入门系列之三十九中讲了派生类的构造函数,提到构造函数就不能不说析构函数,这一节主要讲讲派生类析构函数的相关内容。 派生类的析构函数也是在派生类对象释放的时候进行清理工作的。前面说过,派生类无法继承基类的析构函数,所以如果需要的话就要自己定义析构函数。派生类析构函数的定义方式与一般类的析构函数是一样的,也是没有返回类型,没有参数,所以比构造函数需要注意的东西少多了。 派生类的析构函数一般只需要在其函数体中清理新增成员就可以了,对于继承的基类成员和派生类内嵌对象成员的清理,则一般由系统自 阅读全文

posted @ 2013-08-21 11:47 大浪 淘沙 阅读(457) 评论(0) 推荐(0) 编辑

继承与派生:派生类的构造函数(转)

摘要: 派生类通过公有继承、保护继承和私有继承控制对基类成员的访问属性在鸡啄米编程入门的前两节讲完了。今天讲讲派生类的构造函数。鸡啄米前面说过,基类的构造函数和析构函数派生类是不能继承的。如果派生类需要对新成员初始化或者进行特定的清理工作,就需要自己定义构造函数和析构函数了。从基类继承的成员的初始化仍可通过基类的构造函数来完成。 我们使用派生类的对象以前需要对它的数据成员进行初始化赋值。派生类的数据成员包括从基类继承来的数据成员和派生类新增的数据成员,还可能包括其他类的对象作为其数据成员,包括其他类的对象时实际上还间接包括了这些对象的数据成员。那么我们对派生类初始化时就需要对基类的数据成员、派生类新增 阅读全文

posted @ 2013-08-21 11:34 大浪 淘沙 阅读(800) 评论(0) 推荐(0) 编辑

继承与派生:派生类对基类成员的访问控制之保护继承与私有继承(转)

摘要: 原文地址:http://www.jizhuomi.com/software/98.html鸡啄米在编程入门系列上一节中讲了公有继承方式的访问属性,这一节接着讲剩下的两种继承方式:保护继承和私有继承。 一.保护继承在保护继承方式中,基类的公有成员和保护成员被派生类继承后变成派生类的保护成员,而基类的私有成员在派生类中不能访问。因为基类的公有成员和保护成员在派生类中都成了保护成员,所以派生类的新增成员可以直接访问基类的公有成员和保护成员,而派生类的对象不能访问它们,上一讲鸡啄米说过,类的对象也是处于类外的,不能访问类的保护成员。对基类的私有成员,派生类的新增成员函数和派生类对象都不能访问。通过上述 阅读全文

posted @ 2013-08-21 10:56 大浪 淘沙 阅读(2209) 评论(0) 推荐(1) 编辑

继承与派生:派生类对基类成员的访问控制之公有继承(转)

摘要: 原文地址:http://www.jizhuomi.com/software/96.html在编程入门系列上一讲中鸡啄米讲了派生类从基类继承的过程,其中提到了通过继承方式可以控制对从基类继承的成员的访问属性,这一讲主要讲解公有继承方式怎样控制访问属性。 前面说过,派生类从基类继承时有三个步骤,第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员,第二个步骤就是修改基类成员,包括修改对基类成员的访问属性和覆盖基类成员,第三个步骤是添加新成员。第二个步骤中修改对基类成员的访问属性可以通过派生类的继承方式控制。类的成员有public(公有)、protected(保护) 阅读全文

posted @ 2013-08-21 10:38 大浪 淘沙 阅读(923) 评论(0) 推荐(0) 编辑

2013年8月20日

详解C++中命名空间的意义和用法(转)

摘要: 原文地址:http://www.jizhuomi.com/software/289.html看过鸡啄米的C++编程入门系列教程的朋友,应该能注意到,在其中的很多实例中,都有这么一条语句:using namespace std;,即使用命名空间std,其作用就是规定该文件中使用的标准库函数都是在标准命名空间std中定义的。本文就详细讲解命名空间的意义和用法。 命名空间的意义 为什么需要将函数定义在命名空间中呢?这其实是为了避免变量或函数重命名的问题。试想,一个项目组内多个工程师进行开发,有可能会出现全局变量或函数重名的现象,而如果每个人都定义了自己的命名空间,就可以解决这个问题,即使重名... 阅读全文

posted @ 2013-08-20 21:02 大浪 淘沙 阅读(431) 评论(0) 推荐(0) 编辑

导航