C++
Ziyang Luo
随缘
展开
-
what is 继承与派生
what is 继承与派生? 1)类的继承 新的类从已有的类得到已有的特性。2)类的派生 保持原有类特性,已原有类为基础产生新的类的过程。基类或父类<-派生类或子类原创 2016-05-31 15:15:48 · 234 阅读 · 0 评论 -
An out-of-range value
1.If we assign an out-of-range value to an object of unsigned type, the result is the remainder of the modulo the number of values the target type can hold.2.If we assign an out-of-range value to an原创 2016-07-23 20:17:47 · 674 阅读 · 0 评论 -
Decide which type to use
1.use an unsigned type when you know that the values cannot be negative.2.use int for integer arithmatic. If the data is larger than the minimum guaranteed size of an int, that use long long3.Do n原创 2016-07-23 19:31:53 · 246 阅读 · 0 评论 -
char & unsigned char & signed char
一、开始今天有一个困扰的问题,就是char与signed char, unsigned char这三者的区别。二、三者之间1.ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char。而不是像short、int一样只有两种(int默认就是unsigned int).2.三者都占1个字节3.signed char转载 2016-07-23 19:04:06 · 354 阅读 · 0 评论 -
缓冲区
1、What is缓冲区(buffer)?A buffer is a region of a physical memory storage.It's used to store data temporarily.It has tow kinds. One is called input buffer and the others is called output bu原创 2016-07-12 17:05:57 · 248 阅读 · 0 评论 -
cerr cout clog
cerr(无缓冲标准错误)-----没有缓冲,发送给它的内容立即被输出clog(缓冲标准错误)--------有缓冲,缓冲区满时输出cout-------------------------标准输出三个都是ostream类定义的输出流对象,1.cout是在终端显示器输出,cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲转载 2016-07-12 16:07:38 · 207 阅读 · 0 评论 -
纯虚函数与抽象类
一、纯虚函数 在基类中声明的虚函数在各派生类中根据实际需要给出各自定义。 syntax: virtual returnType functionName(参数表)=0;声明为纯虚函数后,基类中就可以不再给出函数的实现部分,函数体由派生类给出。在基类中对纯虚函数定义的函数体的调用,必须通过“基类名::函数名(参数名)”的形式,if 将析构函数声明为纯虚函数,必须给出它的实现。纯虚函数没有函数体。原创 2016-06-06 20:29:36 · 355 阅读 · 0 评论 -
虚函数
虚函数是动态绑定的基础,虚函数必须是非静态的成员函数。根据赋值兼容机制,可以使用派生类的对象来代替基类的对象,但if用基类类型的指针指向派生类的对象时,访问到的只是从基类继承而来的同名成员,那么当我们要访问到派生类的同名成员时该怎么做呢?可以将基类中的同名成员声明为虚函数,这样就可以通过基类类型的指针,使不同派生类的不同对象产生不同的行为,从而实现运行过程的多态。一、一般虚函数 syntax:原创 2016-06-06 19:47:41 · 359 阅读 · 0 评论 -
运算符重载
运算符重载适度已有的运算符赋予多重含义,是同一个运算符作用于不同类型的数据是导致不同的行为。实际上是函数重载,把指定的运算符转换为对运算符函数的调用,将运算对象转换为运算符函数的实参。重载规则: 1)类属关系运算符“ . ”、成员指针运算符“ .* ”、作用域分辨符“::”、三目运算符“ ? ”不可重载; 2)overload后优先级和结合性不变; 3)overload不可改变原运算符的操作对原创 2016-06-05 23:10:07 · 310 阅读 · 0 评论 -
C++的多态性
what is 多态性? 多态是指同样的消息,被不同类型的对象接收时导致不同的行为。多态的分类: 1、专用多态 (1)重载多态 (2)强制多态2、通用多态 (1)包含多态 (2)参数多态多态的实现 1、编译时的多态 在编译的过程中进行了静态绑定工作 如overload,强制和参数多态 2、运行时的多态 在程序运行阶段完成动态绑定 如包含多态what is 绑定? 计算机程序原创 2016-06-04 21:23:44 · 253 阅读 · 0 评论 -
函数模板与类模板
使代码具有通用性,不受数据类型的影响,并且可以自动适应数据类型的变化,这被称为参数化程序设计,实现参数化多态性。what is 参数化多态性? 将程序所处理的对象的类型参数化,使得一段程序可以用于处理多种不同类型的对象。一、函数模板 编写模板使代码适用于不同数据类型。 只需编写一次,然后基于调用函数时提供的参数类型,C++编译器将自动产生相应的函数来正确地处理该类型的数据。syntax: t原创 2016-06-07 19:25:47 · 344 阅读 · 0 评论 -
派生类成员的标识与访问
对派生类的成员按访问属性可以分为: 1)不可访问成员 从派生类基类的私有成员继承而来,派生类的对象模块没有办法访问。2)private成员 派生类内部可以访问,建立派生类对象模块无法访问,继续派生就变不可访问成员。3)protected成员 与2)相似 不同之处在于 继续派生就可以变成私有成员或保护成员。4)public成员 略一、作用域分辨符 1. 在不同的作用域声明的标识符存在原创 2016-06-02 19:06:06 · 625 阅读 · 0 评论 -
派生类的构造和析构函数
因为派生类不继承基类的构造和析构函数,为了对派生类新增的成员初始化,或扫尾、清理,需要加入构造和析构函数。一、构造函数 派生类成员对象有所有基类的成员对象与派生类新增成员对象组成,在构造派生类的对象时,要对其所有成员对象初始化。为了完成这些工作必须添加新的构造函数,对新增加成员对象初始化,并通过调用基类构造函数,完成对不能直接访问的基类成员对象初始化。syntax:派生类名::派生类名(参数表):原创 2016-06-01 22:49:25 · 626 阅读 · 0 评论 -
类型兼容规则
what is it? 在需要基类对象的任何地方,都可以,使用公有派生类的对象来替代。(1)派生类对象可以隐含转换为基类对象,即用派生类对象从基类继承来的成员,逐个赋值给基类对象成员; (2)派生类对象也可以初始化基类对象的应用; (3)派生类对象地址可以隐含转换为指向基类的指针。在替换之后,派生类对象就可以作为基类对象使用,但只能使用从基类继承的成员。原创 2016-05-31 20:00:22 · 392 阅读 · 0 评论 -
访问控制属性
派生类对基类不同继承方式会改变派生类对基类成员的访问属性。对于访问方式可分为两种: 方法1.派生类的新增成员访问从基类继承的成员; 方法2.派生类的对象访问从基类继承的成员。一、公有继承 继承方式为公有继承。 基类的public成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可直接访问。方法一可以访问public 与 protected,不可直接(就是可以间接,通过调用基类公有成员原创 2016-05-31 19:22:51 · 1213 阅读 · 0 评论 -
生成派生类
1.吸收基类成员 将基类成员全盘吸收 ,派生类包含了除构造和析构函数之外所有成员。 (定义派生类后自动完成,无法干预)2.改造基类成员 1)基类成员访问控制问题,依靠派生类定义时的继承方式来控制。2)对基类数据或函数成员覆盖与隐藏。同名隐藏: 申明了一个与基类成员同名的新成员(if是成员函数则参数表必须相同,otherwise为重载),派生类新成员隐藏了外层同名成员。3.添加新的成员 加入原创 2016-05-31 15:53:10 · 518 阅读 · 0 评论 -
定义派生类
syntax:class 派生类名:继承方式 基类名1,继承方式 基类名2,···,继承方式 基类名n { 派生类成员声明; };我们可以看到在派生类定义的语法上有许多基类名,由此我们可以了解到,一个派生类可以有多个基类,这种情况称作多继承,if只有一个基类时,我们就把其称作单继承,还有直接参与派生出某基类成为直接基类,基类的基类甚至更高层称作间接基类。再有在每一个基原创 2016-05-31 15:36:48 · 2384 阅读 · 0 评论 -
How to enter an End-Of-File from the keyboard
Windows: Ctrl+z EnterUNIX\Mac: Ctrl+d Enter原创 2016-07-15 16:32:19 · 222 阅读 · 0 评论