鸡啄米:C++编程入门系列之五十(异常处理)
分类标签: 编程入门 C++
关于面向对象设计的重要特性--多态性到上一节纯虚函数和抽象类就讲完了。这一讲是本C++编程入门教程的最后一讲--异常处理。我们开发的软件一般按照正常的流程操作时运行不会出问题,但是用户不一定会根据软件工程师的想法来操作软件,而且往往随机性很大,另外,软件的运行环境也会改变,例如硬盘空间不足、文件被移走,这些都可能会导致软件出现异常,甚至崩溃。所以我们进行软件开发时要充分考虑异常的捕捉和处理。阅读全文 »
鸡啄米:C++编程入门系列之四十九(多态性:纯虚函数和抽象类)
分类标签: 编程入门 C++
上一讲中鸡啄米讲了多态性中的重要概念,虚函数。本节主要讲解另一个软件开发中经常用到的多态概念--抽象类。 抽象类可以为某个类族提供统一的操作接口。外部可以透明的使用抽象类的统一接口,而不需要知道到底是调用的抽象类的哪个派生类的成员函数。其实这些也可以通过在基类中定义虚函数来实现,但抽象类跟一般类不同的是,它使用纯虚函数...阅读全文 »
鸡啄米:C++编程入门系列之四十八(多态性:虚函数)
分类标签: 编程入门 C++
春节假期大家过的快乐吗?因为是假期鸡啄米就没有更新编程入门教程,估计这期间学习的人也很少吧。 节前最后一讲鸡啄米讲的是运算符重载为类的友员函数。今天讲的是属于包含多态的虚函数。 一.虚函数的意义 在讲赋值兼容规则时鸡啄米给出了一个程序例子,其中包含类Base、Child0和Child1。在程序运行结果中我们看到,main函数中Base类型的指针pBase,分别指向...阅读全文 »
鸡啄米:C++编程入门系列之四十七(多态性:运算符重载为类的友元函数)
分类标签: 编程入门 C++
鸡啄米在上一节中讲了运算符重载为类的成员函数的方式和规则,这一节接着讲运算符重载的另一种方式--运算符重载为类的友元函数。在编程入门系列之二十二--友元中,鸡啄米讲到过,友元函数通过类的对象可以访问类的公有、保护和私有成员,也就是类的所有成员友元函数都能访问到。所以运算符重载为类的友元函数以后也可以访问类的所有成员。阅读全文 »
鸡啄米:C++编程入门系列之四十六(多态性:运算符重载为类的成员函数)
分类标签: 编程入门 C++
上一节中鸡啄米讲到了运算符重载的概念和规则,运算符可以重载为类的成员函数或友元函数,这一节就来讲讲运算符怎样重载为类的成员函数。运算符重载为类的成员函数后就可以像其他成员函数一样访问本类的数据成员了。在类的外部通过类的对象,可以像原运算符的使用方式那样使用重载的运算符,比如,“+”;运算符被重载为类A的成员函数后,A的对象a和其他对象b就可以这样进行加法运算:a+b。阅读全文 »
鸡啄米:C++编程入门系列之四十五(多态性:运算符重载的概念和规则)
分类标签: 编程入门 C++
上一节鸡啄米讲了多态性的概念和类型,多态有四种类型:重载多态、强制多态、参数多态和包含多态。这一节主要介绍重载多态中的运算符重载。一.运算符重载的概念 为什么我们需要运算符重载?因为自定义数据类型有时也需要使用运算符进行某些运算,比如加法运算,但是预定义的运算符的操作数只能是基本数据类型,所以自定义数据类型的运算需要进行运算符重载。阅读全文 »
鸡啄米:C++编程入门系列之四十四(多态性:多态的概念和类型)
分类标签: 编程入门 C++
上一节讲完赋值兼容规则后,编程入门中继承与派生的部分就讲完了。今天开始讲解面向对象设计中的多态性。鸡啄米先介绍一个概念:消息。消息在C++编程中指的是对类的成员函数的调用。多态就是指相同的消息被不同类型的对象接收会引起不同的操作,直接点讲,就是在不同的情况下调用同名函数时,可能实际调用的并不是同一个函数。阅读全文 »
鸡啄米:C++编程入门系列之四十三(继承与派生:赋值兼容规则)
分类标签: 编程入门 C++
上一节鸡啄米讲了虚基类及其派生类的构造函数,本节来讲讲赋值兼容规则。前面说过,派生类如果是从基类公有继承的,则它会包含基类中除构造函数和析构函数外的所有成员,基类的公有成员也成为派生类的公有成员,又因为对象只能访问类的公有成员,所以基类对象具有的功能,派生类对象都有。这样就引出了赋值兼容规则。阅读全文 »
鸡啄米:C++编程入门系列之四十二(继承与派生:虚基类及其派生类的构造函数)
分类标签: 编程入门 C++
鸡啄米在编程入门系列的上一讲中讲了作用域分辨符。今天主要讲解虚基类及其派生类的构造函数。 1.虚基类的概念及用法 上一讲中说过,如果派生类的全部或者部分基类有共同的基类,那么派生类的这些直接基类从上一级基类继承的成员都具有相同的名称,定义了派生类的对象后,同名数据成员就会在内存中有多份拷贝,同名函数也会有多个映射。阅读全文 »
鸡啄米:C++编程入门系列之四十一(继承与派生:作用域分辨符)
分类标签: 编程入门 C++
鸡啄米在编程入门系列的前两节中讲了派生类的构造函数和析构函数,现在来讲讲通过作用域分辨符访问派生类成员的问题。访问派生类的成员有可见性和唯一性两个问题,我们只能访问到具有唯一性的可见成员。 先说说可见性的问题。前面C++编程入门系列之十八的作用域和可见性中讲过,如果有两个以上具有包含关系的作用域,外层作用域中的标识符在内层作用域中没有同名标识符则它在内层作用域中也是可见的...阅读全文 »
鸡啄米:C++编程入门系列之四十(继承与派生:派生类的析构函数)
分类标签: 编程入门 C++
鸡啄米在C++编程入门系列之三十九中讲了派生类的构造函数,提到构造函数就不能不说析构函数,这一节主要讲讲派生类析构函数的相关内容。派生类的析构函数也是在派生类对象释放的时候进行清理工作的。前面说过,派生类无法继承基类的析构函数,所以如果需要的话就要自己定义析构函数。阅读全文 »
鸡啄米:C++编程入门系列之三十九(继承与派生:派生类的构造函数)
分类标签: 编程入门 C++
派生类通过公有继承、保护继承和私有继承控制对基类成员的访问属性在鸡啄米编程入门的前两节讲完了。今天讲讲派生类的构造函数。鸡啄米前面说过,基类的构造函数和析构函数派生类是不能继承的。如果派生类需要对新成员初始化或者进行特定的清理工作,就需要自己定义构造函数和析构函数了。阅读全文 »
鸡啄米:C++编程入门系列之三十八(继承与派生:派生类对基类成员的访问控制之保护继承与私有继承)
分类标签: 编程入门 C++
鸡啄米在编程入门系列上一节中讲了公有继承方式的访问属性,这一节接着讲剩下的两种继承方式:保护继承和私有继承。一.保护继承 在保护继承方式中,基类的公有成员和保护成员被派生类继承后变成派生类的保护成员,而基类的私有成员在派生类中不能访问。阅读全文 »
鸡啄米:C++编程入门系列之三十七(继承与派生:派生类对基类成员的访问控制之公有继承)
分类标签: 编程入门 C++
在编程入门系列上一讲中鸡啄米讲了派生类从基类继承的过程,其中提到了通过继承方式可以控制对从基类继承的成员的访问属性,这一讲主要讲解公有继承方式怎样控制访问属性。 前面说过,派生类从基类继承时有三个步骤,第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员...阅读全文 »
鸡啄米:C++编程入门系列之三十六(继承与派生:派生类从基类继承的过程)
分类标签: 编程入门 C++
上一讲鸡啄米讲了继承与派生的概念和派生类的声明,继承与派生是编程入门的重要内容,是以后进阶的基础。这一讲是关于派生类从基类继承的过程。 在使用上一讲中讲到的声明方式声明派生类之后,再实现派生类的成员函数,这样派生类就算完整了。 根据前面所讲,派生类从基类继承的过程可以分为三个步骤:吸收基类成员、修改基类成员和添加新成员。阅读全文 »
鸡啄米:C++编程入门系列之三十五(继承与派生:概念介绍与派生类的声明)
分类标签: 编程入门 C++
前面关于数组、指针和字符串的内容鸡啄米讲完了。现在开始鸡啄米将会介绍C++编程入门的一个很重要的知识点--继承与派生。一.继承与派生的概念 在之前的教程中我们学习了类的抽象性、封装性以及数据的共享等以后,我们就可以对于现实中的问题进行抽象和处理了。阅读全文 »
鸡啄米:C++编程入门系列之三十四(数组、指针和字符串:string类)
分类标签: 编程入门 C++
在编程入门系列上一讲中鸡啄米说过,存放和处理字符串有两种方式,一种是用字符数组,另一种是用C++标准类string。今天鸡啄米就大概讲下string类及其用法。C++从C语言继承了用字符数组存放字符串的方式,并且可以使用像strcpy等系统函数来处理字符串,但是这种方式大家应该也感觉不是很方便。阅读全文 »
鸡啄米:C++编程入门系列之三十三(数组、指针和字符串:用字符数组存放和处理字符串)
分类标签: 编程入门 C++
上一讲鸡啄米讲了动态内存分配的内容,今天要讲的是字符串,是编程入门必须要掌握牢的内容之一。 在编程系列之四(数据类型)中鸡啄米说过,字符串是用双引号括起来的字符序列。比如,"China"。字符串常量会在字符序列末尾添加'\0'作为结尾标记。对于ASCII码来说每个字符占一个字节,而对Unicode码来说每个字符占两个字节。本教程只讲ASCII编码的字符和字符串。阅读全文 »
鸡啄米:C++编程入门系列之三十二(数组、指针和字符串:动态内存分配和释放)
分类标签: 编程入门 C++
上一讲中鸡啄米讲的是对象指针,指针的相关内容就讲完了。今天鸡啄米给大家讲解下C++编程入门时必须要掌握的又一个重点内容--动态内存分配。 动态内存分配最常见的就是用来分配一个某类型的数组。我们可以使用数组来处理大量的数据,但实际上很多情况下我们并不知道此数组会有多少个元素...阅读全文 »
鸡啄米:C++编程入门系列之三十一(数组、指针和字符串:对象指针)
分类标签: 编程入门 C++
上一讲鸡啄米给大家讲的是指针用作函数参数、指针型函数和函数指针的知识,今天鸡啄米把指针方面的内容结个尾,讲讲对象指针。 一.什么是对象指针 每个变量都占有一定的内存空间,对象有数据成员和函数成员两种成员,但是实际上只有对象的数据成员会占用内存,函数成员则不会。阅读全文 »