《C++总结3》

派生类

Class student1:public student   //表示公用继承,默认为私有的

{  public :

……

……

}

继承的时候一定是全部继承来,但是可以自己设定访问属性,或是覆盖父成员

一般是抽象基类   构造函数和析构函数不能继承

基类不能访问派生类

继承方式就是对父成员的属性改造,私有>保护>公有(把儿子也当外人)

不管怎么样,父私有的,子都不能继承和调用

多级派生 常用的是公用继承

派生类构造函数:

Student1(int n,string nam,char s,int a):student(n,nam,s)

对象中的对象(子对象)

含有子对象的派生类的构造函数:

Student1(int n,string nam,int n1):student(n,nam),monitor(n1,nam1)

{

……//可以为空

}

多层派生的构造函数:

Student2(int n,string nam,int a,int s):student1(n,nam,a)

父和子的构造函数都是可以默认的

多重继承:

Class D:public A,private B,protected C

{

……

}

多重继承构造函数:

Graduate(string nam,int a,char s,string t,float sco,float w):

teacher(nam,a,t),student(nam,s,sco),wage(w)

{

……

}

多重继承会有二义性,引用的时候要指明

虚基类 合开合的思想,第一个合就是虚基类  虚继承

虚基类:

Class A

{  A(int){  }

……

};

Class B:virtual  public  A

{  

B(int n):A(n)

{

……

}

……

……

};

Class C:virtual  public  A

{  

C(int n):A(n)

{

……

}

……

……

};

Class D:public B,publicC

{D(int n):A(n),B(n),C(n)  {  }

……

};

*****************

      A         ¦

B     C   D     ¦

      E         ¦

*****************//注意D比较特殊

域运算符::

派生类对象可以给基类对象赋值,也可以作为父类对象的引用还有指针

派生类的成员可以是基类的对象 (这其实就是类的组合)

任何的机器,只要是运行应用,界面什么都是OS控制的,就一定有目标代码存在,应用一般是完整的汇编代码。但是产生应用的过程,是要用到专门的工具和平台,要用到类库。

任何运行程序都是和OS兼容的,而汇编代码都是和CPU兼容的,这是计算机核心。

参数类型推导   被覆盖的依然可以通过域运算符使用

静态成员

重载(静态多态)是多提的一种方式之一,还有虚函数(动态多态)

虚函数:在派生类中定义与基类同名字的函数,并且可以通过基类指针或引用来访问

虚函数就是来避免覆盖冲突的

静态关联(早期关联)  动态关联(滞后关联)//用基类指针对象来访问

虚析构函数  纯虚函数

Virtual  int  max( )=0;

 抽象类  编译系统会构造虚函数表

类族  标准模板库STL   标准IO  文件IO 串IO

总体上来说,C++要比C好很多,各有各的优点吧

数据流表示从内存到IO的

IO缓冲区   流类  本质就是对象之间的活动,网社交的活动构成我们时空状态的变化

头文件里的流对象 类库的接口就是头文件

Cin流 cerr(特点就是不经过缓冲区) clog流(标准出错流) 头文件里运算符重载    

格式控制头文件iomanip

流对象成员函数     格式标志

Cout.put(‘a’).put(24);   putchar

EOF文件结束    cin.get( );  getline( )    eof( )  peek( )   putback( )

Ignore()

文本文件(字符文件)  二进制文件(字节文件,内部格式文件)

文件流类  输出文件(接受从内存的数据)

Ofstream outfile;  //建立流对象

Outfile.open(“niu.txt”,ios::out);

虚函数的重载性   

异质链表(指针数组):

Student  *stu[100];

类属参数的函数就是模板函数  类属是参数化类型

模板是对于数据类型的模板  类模板  函数模板  模板类和模板函数是实例化的

这也是泛型程序设计

模板说明:

Template<typename T> 或者Template<class T>

类属类型的本质是int float……(前提是要定义好)

类模板就是类的成员里面的变量属性的代号

在类外定义函数的时候或者是实例化的时候在有T的地方加上array<t>即可

模板类的友元函数和友元类

标准模板库STL里的容器(数据结构集合)container 迭代器  

容器:序列容器   关联容器    容器适配器   近容器

模板向量   构造容器

vector<int> V(10,0);

容器的本质是系统的函数调用

Vector<int> V(10,0);  里面的数据为容器对象

容器就是数据结构的元素的集合,是一种特殊的类,在调用使用上和类一样

容器是一个大对象,对象里面有小元素对象

容器迭代器很有好处(本质是容器指针)

Iterator迭代器   迭代子(本质是指针)

串流对象 string对象   串流本质是内存流

匿名对象   顺序索引文件   追加   标识常量   自定义流

二进制文件为随机存取   流指针   

Input.seekg(120);

Infile.seekg(-30,ios::cur);

outfile.seekg(-30,ios::end);

ostream写指针函数   istream读指针函数

异常检测和处理  函数调用错误时产生异常,然后调用的人去处理这个异常

抛出异常之后这个函数就终结了,所以就是不唤醒,异常处理像是中断

Throw抛出    try捕获  catch处理

Throw  niu//niu为异常类型

Try

{

……

}

Catch(参数1)

{

……

}

Catch(参数2)

{

……

}

……

……

异常列表    异常是在函数定义时候定义的

再抛出异常传递    构造函数里的异常处理

图标   cin  cout的重定向    查找分类函数    文本窗口IO函数

命名空间(作用域)   嵌套命名空间  

命名空间是来解决名字冲突的    命名空间成员   命名空间是大的特殊的类

无名命名空间     using  标准命名空间std

命名空间比头文件更大

using namespace std; //std里有标识符,要避免自己定义的与它的重名

Namespace            //无名命名空间

{

Void fun()

  {

   cout<<”niu”<<end1;

  }

}    //命名空间成员可以是函数,作用和库函数一样

 ____________________________________________________________________

 至此,C++概要总结完毕!

                                                   2017  6.9     兰州      雨

猜你喜欢

转载自www.cnblogs.com/niu3/p/9352110.html