![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++—类
类的一些知识点
你是认真的吗...
这个作者很懒,什么都没留下…
展开
-
文件操作(1.流,标准流,流状态)【非重点】
1.流的概念流:一个对象到另一个对象的流动称为流(stream),按信息流动的方向分类,分为输入流,输出流,输入输出流;按编码格式分类,分为文本流,二进制流;流类,流库:实现设备之间交换信息的类称为流类;多个流类按面向对象的方法组织起来叫I/O流类库,简称流库2.几个重要的头文件1.fstream:建立文件,读文件,写文件操作2.iostream:标准输入(cin)输出(cout)流3.istream:标准输入流(cin)4.ostream:标准输出流(cout)5.ifstream:输入文原创 2020-06-23 22:07:46 · 182 阅读 · 0 评论 -
多态(1.多态定义,虚函数,纯虚函数,抽象类)【重点】
多态定义多态:多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。比如,你和你朋友同时继承了人这个类中打人的方法,但是你用拳头打人和你朋友用巴掌打人的方法都是打人方法,却表现出不同的形式,这就是现实生活中多态的理解。多态的应用具体的应用就是通过基类指针来调用派生类里面的虚函数(所有继承基类里的派生类的虚函数同名),从而实现这些虚函数各自不一样功能;实现多态应用的要求和前提1.设置虚函数,且所有的虚函数(基类里的和派生类里的)函数类型和名字必须原创 2020-06-23 11:45:07 · 299 阅读 · 0 评论 -
继承与派生(13.赋值兼容规则)【非重点】
1.赋值兼容规则定义赋值兼容规则:以基类A为例,在程序中需要使用基类A对象的任何地方,都可以用通过公有继承方式继承基类A的派生类的对象来替代。注意赋值兼容规则所指的替代包括以下几种情况:1.派生类的对象可以赋值给基类对象;class A{...};class B:public A{...};...A a;B b;a=b;...这样赋值的效果:对象b中的所有数据成员都将具有对象a中对应数据成员的值2.派生类的对象可以初始化基类的引用;class A{...};class B原创 2020-06-22 21:25:27 · 306 阅读 · 0 评论 -
继承与派生(11.多继承的执行顺序及构造函数的注意事项)【重点】
1.执行顺序#include<iostream>using namespace std;class A{private: int x;public: A(int i){x=i;cout<<"it's constructing A class"<<endl;} void showA(){cout<<"it's performance showA function"<<endl;} ~A(){cout<原创 2020-06-22 11:01:57 · 660 阅读 · 0 评论 -
继承与派生(9.基类与派生类的构造函数和析构函数的执行顺序)【重点】
构造函数的执行顺序在创建派生类的对象时,构造函数的执行顺序:基类的构造函数—>>(对象成员的构造函数)—>>派生类的构造函数析构函数的执行顺序在撤销派生类的对象时,析构函数的执行顺序:派生类的析构函数—>>(对象成员的析构函数)—>>基类的析构函数...原创 2020-06-21 09:33:59 · 456 阅读 · 1 评论 -
继承与派生(8.基类与派生类的构造函数的关系)【重点】
基类中没有构造函数的前提下派生类中可以没有构造函数,也可以有构造函数(有参无参都可以)基类中有构造函数的前提下1.当基类中的构造函数没有无参的构造函数时(全部是有参的),派生类中必须有构造函数(有参无参无所谓),且必须使用初始化成员列表;2.当基类中的构造函数有无参的构造函数时,派生类中可以没有构造函数,也可以有构造函数(既可以有参也可以无参,既可以用初始化也可以不用初始化)...原创 2020-05-20 21:18:10 · 525 阅读 · 0 评论 -
继承与派生(7.派生类的构造函数)【重点】
知识点1.派生类构造函数的相关规则1.基类的构造函数和析构函数不能被继承2.如果基类没有定义构造函数或有无参的构造函数,派生类也可以不用定义构造函数3.如果基类没有无参的构造函数,派生类必须定义构造函数,且必须使用初始化成员列表的方式4.派生类是否定义析构函数与所属的基类无关知识点2.派生类的构造函数的声明定义格式类内声明:派生类类名(参数);类外定义:派生类类名(参数):基类类名(...原创 2020-05-06 11:16:26 · 572 阅读 · 0 评论 -
继承与派生(6.派生类中访问静态成员)【非重点】
知识点1.静态成员的共享基类定义的静态成员,将被所有的派生类所共享,并且基类和派生类共享基类中的静态成员知识点2.静态成员的访问权限静态成员的访问权限在类的层次体系中各不相同,要根据以下两点来确定静态成员的访问权限:1.静态成员自身的访问权限(共有,私有,保护)2.派生类的继承方式(不同的继承方式静态成员继承后的访问权限不同)知识点3.访问静态成员的2种访问格式1.基类的类名::静...原创 2020-05-05 18:35:35 · 807 阅读 · 0 评论 -
继承与派生(4.保护继承)【重点】
知识点1.保护继承下,派生类对基类成员的访问规则基类中的成员private成员public成员protected成员派生类内部不可访问可以访问可以访问派生类的对象不可访问不可访问不可访问...原创 2020-05-01 16:24:58 · 304 阅读 · 0 评论 -
继承与派生(2.公有继承)【重点】
知识点1.公有继承下,派生类对基类成员的访问规则基类中的成员private成员public成员protected成员派生类内部不可访问可以访问可以访问派生类的对象不可访问可以访问不可访问——————————————————————————————————————————————————————————————————————————————————...原创 2020-04-30 23:04:28 · 253 阅读 · 0 评论 -
继承与派生(1.基础知识)【重点】
知识点1.含义1.继承是类之间的一种关系,创建一个新类时,通过吸收已有类的数据和行为来创建新类,并可以添加新的数据和行为来增加类的功能。2.继承时,除了构造函数和析构函数,之外的数据都会原封不动的继承下来,但能不能用是另外一个问题3.创建新类时,并不需要创建全新的数据和成员函数,我们可以指明这个新类应对继承现有的类的成员。此时,现有的类称为“基类”,继承实现的新类称为“派生类4.引入继承的...原创 2020-04-29 17:17:31 · 666 阅读 · 0 评论 -
运算符重载(4.基本数据类型转换为类类型)【非重点】
例题:如下列代码通过用构造函数的方式,将一个double的数据变成一个money类#include <iostream>using namespace std;class crmb{private: int yuan; int jiao; int fen;public: crmb(int y=0,int j=0,int f=0); c...原创 2020-04-27 22:24:26 · 273 阅读 · 0 评论 -
运算符重载(3.输入与输出)【重点】
知识点1.需要知道的知识1.istream和ostream是C++预定义流类2.cin是istream的对象,cout是ostream的对象3.只能用友元函数重载<<和>>原创 2020-04-27 18:41:51 · 657 阅读 · 0 评论 -
运算符重载(2.前置与后置)【重点】
知识点1.清单知识点2.前置运算符重载前置方式:++Aobject(或- -Aobject)1.重载为成员函数:(以自增为例)类内声明:返回类型 operator++();类外定义:返回类型 类的名字::operator++() {…}main函数里调用的方式:++对象的名字;注意1.用成员函数重载前置运算符时,运算符函数不能有形参;2.返回类型习惯上都为该类的类型例题:定...原创 2020-04-27 12:32:58 · 1471 阅读 · 1 评论 -
运算符重载(1.成员,友元,双目,单目)【重点】
知识点1.不能重载的5个运算符:第一个:.第二个:::第三个:*第四个:? :第五个:sizeof知识点2.重载运算符的限制重载运算符函数可以对运算符做出新的解释,但是:1.运算符的优先级重载前后不变2.运算符的结合性重载前后不变3.运算符的操作数重载前后不变4.不能创造出新的运算符知识点3.需要注意的点1.大部分运算符函数可以重载为成员函数和友元函数2.区别...原创 2020-04-20 22:24:19 · 1782 阅读 · 0 评论 -
对象数组
知识点1.对象数组的初始化#include<iostream>using namespace std;class Point{ int x,y;public: Point();//无参构造函数 Point(int);//带一个参的构造函数 Point(int,int);//带两个参的构造函数 void Print();};Point::Point(){ x=0;...原创 2020-04-19 11:44:19 · 2770 阅读 · 0 评论 -
类的组合(类的包含)
知识点1. 类之间的关系(对象之间的关系):1.组合关系 2.继承关系知识点2.类的组合和对象成员1.封闭类:类A的数据成员(公有或私有)是类B的对象,这一形式是类的组合,类A就叫做封闭类2.对象成员:类A的数据成员(公有或私有)是类B的对象,则该数据成员叫做对象成员例如:#include<iostream>#include<cmath>using name...原创 2020-04-19 00:12:14 · 1051 阅读 · 0 评论 -
友元函数,友元类
友元函数:知识点1.友元函数的作用:该函数可以直接访问对象的私有数据成员知识点2.现在假设有一个类A,有一个函数B,函数B在类A外(可以在其他类内,也可以是普通的全局函数),在类A中用friend对函数B进行声明,则函数B就是类A的友元函数。从而类A的友元函数B就可以访问类A的私有数据成员知识点3.某个类的友元函数在类的公有区声明和私有区声明,效果是一样的知识点4.友元函数的声明:在类A...原创 2020-04-17 22:37:13 · 607 阅读 · 0 评论 -
常成员,常函数,常对象
知识点1.常对象中的任何类型的数据成员(无论私有还是公有)的值都不能被改变。知识点2.常对象能调用的:1.公有的常成员函数2.构造函数3.公有的静态函数知识点3.常对象与常成员函数只有同时存在才都有意义知识点4.普通对象既可以调用常成员函数,也可以调用非常成员函数知识点5.常成员函数不能更改数据成员(包括常数据成员和非常数据成员)的值知识点6.常成员函数的用处:因为常成员函数不能改...原创 2020-04-16 17:34:57 · 481 阅读 · 0 评论 -
静态数据成员,静态函数
静态数据成员:知识点1.静态数据成员最普遍的用法:对同类型的对象进行计数知识点2.静态数据成员不属于某一个单独的对象,而是为类的所有对象所共有知识点3.当对象不存在时,仍然可以访问静态数据成员知识点4.静态数据成员的声明格式(必须类内声明一次,类外再声明一次),示例:知识点5.静态数据成员访问的格式,示例:示例代码演示:在这里插入代码片#include#includeusing...原创 2020-04-17 12:09:55 · 331 阅读 · 0 评论