C++
文章平均质量分 75
全栈大王
这个作者很懒,什么都没留下…
展开
-
C++构造函数与析构函数
C++构造函数与析构函数1.构造函数1.1什么是构造函数?构造函数是一种特殊的成员函数,与其他成员函数不同,建立对象时自动执行,名字与类名相同,不具有任何类型,无返回值。1.2什么时候调用构造函数?在类对象进入其作用域时,调用构造函数。1.3构造函数没有返回值,因此也不需要在定义构造函数时声明类型。比如在Time类的内部的时候,构造函数应该可以声明为Time()1.4构原创 2016-02-13 10:13:28 · 10586 阅读 · 1 评论 -
C++继承与派生
C++继承与派生1.1 C++中可重用机制是通过继承这一个机制来实现的。1.2在C++中所谓“继承”就是在一个已存在的类的基础上建立一个新的类,已存在的类(例如"马")称为“基类(base class)”或“父类(father class)”,新建立的类(例如“白马”)称为“派生类(derived class)”或“子类(son class)”.1.3一个新类从已有的类那里获得其已有的原创 2016-02-15 20:18:32 · 11315 阅读 · 0 评论 -
C++三大继承与多级派生
C++公用继承1.1在定义一个派生类时把派生方式指定为public的,称为公用继承,派生类称为公用派生类,基类称为公用派生类。1.2关于公用继承的一段代码:#include using namespace std;class student{public: void display(); void setValue(int number,原创 2016-02-15 21:18:32 · 12805 阅读 · 0 评论 -
C++派生类的构造函数和析构函数
C++派生类的构造函数和析构函数派生类的构造函数和析构函数#include using namespace std;class student{public: student(int num,char* n):number(num),name(n){} ~student(){cout "student deconstruted" en原创 2016-02-16 08:42:05 · 5897 阅读 · 0 评论 -
C++多重继承
C++多重继承1.1一个派生类继承多个基类称为多重继承。1.2声明多重继承的方法。如果声明了类A,B,C,可以声明多重派生类D。class D:public A,private B,protected C{类D新增加的成员}1.2多重继承派生类的构造函数,如:派生类构造函数名(总参数表列):基类1构造函数(参数表列),基类2构造函数(参数表列),基类3构造函数(参数原创 2016-02-16 11:47:53 · 10514 阅读 · 0 评论 -
C++虚基类
C++虚基类1.1虚基类的作用:如果一个派生类有多个直接基类,而且这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类的多份同名成员。所以为了解决这个问题,C++提供虚基类的方法,使得在继承间接共同基类时只保留一个成员。1.2虚基类并不是在声明基类时声明的,而是在声明派生类时,指定继承方式时声明的,因为一个基类可以在生成一个派生类时,作为虚基类,在生成另个派生类时,不原创 2016-02-16 12:35:42 · 10660 阅读 · 0 评论 -
C++多态性
C++多态1.1多态性(polymorphism)是面向对象程序设计的一个重要特征。1.2从系统实现的角度看,多态性分两类:静态多态性与动态多态性。静态多态性是通过函数重载(运算符重载也是函数重载)来实现的。它又称为编译时多态。动态多样性是在程序运行过程中才动态确定操作所针对的对象。它又称为运行时多态,动态多态性是通过虚函数来实现的。1.3一段代码:#include原创 2016-02-16 21:26:25 · 10720 阅读 · 0 评论 -
C++虚函数
1.1注意区分虚函数与虚基类,一个是为了实现动态多态性,一个是在继承间接共同基类时只保留一个成员来减少开销。1.2虚函数的作用是通过同一个调用形式来调用基类或者派生类中的同名函数。1.3虚函数的使用方法:A.在基类用virtual声明成员函数。这样就可以在派生类中重新定义此函数,为它赋予新的功能,并能方便的被调用。在类外定义虚函数时,不必加virtual。B.在派生类中重新定义原创 2016-02-16 21:42:05 · 10634 阅读 · 0 评论 -
C++静态关联与动态关联
1.1确认具体对象的过程叫关联(binding),在这里指把一个函数与类对象捆绑在一起,建立关联。1.2什么是静态关联?函数重载和通过对象名调用的虚函数,在编译时即可确定其调用的虚函数属于哪一个类,其过程称为静态关联,由于是在运行前关联的,所以又叫早期关联。1.3什么是动态关联?在运行时,基类指针变量指向了某个类对象,然后通过这个基类指针去调用虚函数。由于是在运行时把虚函数与对象“原创 2016-02-16 22:03:44 · 10684 阅读 · 1 评论 -
C++纯虚函数与抽象类
纯虚函数1.1纯虚函数是在声明虚函数时被“初始化”为0的函数。声明纯虚函数的一般形式为:virtual 函数类型 函数名 (参数列表) =0;如 virtual float area() const =0;1.2纯虚函数没有函数体,而且这是一个声明语句后面应有分号。1.3纯虚函数最后面的“=0”并不表示返回值为0,它只是起形式上的作用,告诉编译器这是纯虚函数。1.4纯虚函数原创 2016-02-16 22:46:30 · 9082 阅读 · 0 评论 -
C++不同数据类型的转换
C++不同数据类型的转换C++标准类型数据的转换1.1隐式类型转换,如:int i=6;i=i+7.5;1.2显式类型转换,如:类型名(数据)如int(89.5)在C语言中(int)89.5建议用C++的方式。C++用转换构造函数进行类型转换1.1转换构造函数也是一种构造函数,它遵循构造函数的一般规则。通常把带有一个参数的构造函数称为转换原创 2016-02-15 17:10:49 · 11238 阅读 · 0 评论 -
C++重载流插入运算符与流提取运算符
C++重载流插入运算符与流提取运算符1.1 ">"流提取运算符。1.2对“>”重载的函数的形式如下:istream & operator >> (istream &,自定义的类&);ostream & operator 即重载运算符的第一个参数和函数类型必须是istream或者ostream类型的,第二个参数是要操作的类。这是为了能连续的输入和输出。1.3只能重载">"原创 2016-02-15 16:51:10 · 15264 阅读 · 2 评论 -
C++对象数组与对象指针
C++对象数组1.1数组不仅可以由简单的变量组成,而且还可以由对象组成。1.2对象数组的初始化:A.如果构造函数只有一个参数,在初始化数组时可以在花括号里提供实参。Student stud[3]={10,18,12};B.如果构造函数有多个参数,在初始化数组时,分别在数组中写出构造函数并指定实参。Student Stud[3]={Student(1,11,111);St原创 2016-02-13 15:13:14 · 11050 阅读 · 2 评论 -
C++共用数据的保护
C++中往往通过使用const,来使数据在一定范围内共享又不能被随意修改。C++常对象1.1常对象的一般形式为:A.Time const t(1,2,3);B.const Time t(1,2,3);1.2常对象的数据成员都是常变量而且必须要有初值。1.3不能调用常对象的非const型的成员函数,即常成员函数。C++常数据成员1.1常数据成员的声明。原创 2016-02-13 15:57:58 · 10900 阅读 · 1 评论 -
C++对象的动态建立和释放
1.1前面的方法是静态的,而在c++中要动态的建立对象可以用new,删除对象用delete。C++对象动态建立和释放1.1用new运算符之后,返回一个指向新对象的指针。Box *pt=new Box(1,2,3);1.2通过pt来访问这个对象cout height;cout volume();1.3用delete运算符来释放对象。delete pt;1.4在原创 2016-02-13 17:04:30 · 10259 阅读 · 0 评论 -
C++对象的赋值和复制
C++对象的赋值1.1对象之间的赋值是用“=”运算符来实现的,“=”在c++中扩展为重载运算符来实现对象间的赋值。t1=t2;1.2对象赋值是对数据成员的赋值,而不是对成员函数的赋值。因为数据成员占用内存空间,而成员函数只是一段共用代码。1.3类的数据成员中不能包括动态分配的数据,否则在赋值时可能出现严重的后果。C++对象的复制1.1C++对象的复制参考前面的“C+原创 2016-02-13 17:12:24 · 10204 阅读 · 0 评论 -
C++静态成员
在同类的多个对象之间实现数据共享,往往使用静态成员而不是全局变量。C++静态数据成员1.1静态数据成员是一种特殊的数据成员。static int height;1.2静态数据成员可以通过类名来引用,也可以通过对象来引用。1.3静态数据成员不属于某一个对象,静态数据成员的存储空间是在静态存储区的,与一般的对象不同。1.4静态数据成员和对象的建立与销毁没有直接的关系,静态数据成原创 2016-02-13 17:41:29 · 10018 阅读 · 0 评论 -
C++友元
C++中友元的关键字是friend,友元包括友元类和友元函数。C++友元函数1.1将普通函数声明为友元函数。friend void display(Time &)1.2友元函数可以访问对象里面的私有数据成员。1.3友元函数必须指定要访问的对象。1.4将成员函数声明为友元成员函数。如#include using namespace std;class Date原创 2016-02-13 19:16:33 · 19578 阅读 · 0 评论 -
C++类模板
与函数模板相同,往往有时候对好几个功能相似的类,可以使用类模板。C++类模板#include using namespace std;templateclass numtype> //声明一个模板,虚拟类型名为numtypeclass compare //类模板名为compare{public: compare(numtype x,numtype y)原创 2016-02-13 20:49:51 · 19672 阅读 · 0 评论 -
C++运算符重载
C++运算符重载1.1什么是运算符重载?和函数重载一样,运算符也可以重载,运算符重载的本质就是函数重载。1.2运算符重载的举例。“>”是流对象cin配合使用的流提取运算符。1.3运算符重载的方法是定义一个重载运算符函数。1.4重载运算符函数的一般格式如下:函数类型 operator 运算符名称(形参表列){对运算符的重载处理}如:Complex Complex:原创 2016-02-14 13:19:33 · 19681 阅读 · 0 评论 -
C++运算符重载函数作为类成员函数和友元函数
C++运算符重载函数作为类成员函数1.1成员函数的重载运算符左侧是一个类对象,而且与运算符函数类型相同。因为必须通过类的对象去调用该类的成员函数,而且只有运算符重载函数和返回值类型相同,运算结果才有意义。1.2将双目运算符重载为友元函数时,在形参表列中必须有两个参数,不能省略,形参的顺序任意。1.3在使用运算表达式的时候,运算符左侧与函数第一个参数对应,右侧与第二个参数对应。原创 2016-02-14 14:01:32 · 21324 阅读 · 0 评论 -
C++文件操作与文件流
文件的概念1.1文件是程序设计中一个重要的概念,所谓“文件”,一般指存储在外部介质上数据的集合。1.2外存文件包括磁盘文件,光盘文件,和U盘文件。1.3对用户来说常用的文件类型有两大类,一类是程序文件,如C++的源程序文件(.cpp),目标文件(.obj),可执行文件(.exe)。一类是数据文件,程序里面常常需要把一些数据存放起来,这种磁盘文件就是数据文件。程序中的输入和输出对象就是数原创 2016-02-17 16:55:11 · 9393 阅读 · 0 评论