C++速学day4

类的继承关系

蛇   和   爬行类动物                       //这两个类就是继承关系
子类       父类                                 //它们的关系相当于
派生类     基类

继承的作用

       1、 吸收基类成员
        2、改造基类成员
        3、添加新的成员
 

class  Dervide : public base                  //这里的public 就是为了使用类型兼容性规则、
{

}

注意:类型兼容性规则, 在需要基类对象的地方可以用派生类对象代替

派生类的构造和析构的流程

执行基类构造
执行派生类构造
执行派生类析构函数函数体
析构派生类数据成员
执行基类析构函数函数体
析构基类数据成员

在构造的时候先构造基类,在析构的时候先析构派生类。

如果基类需要参数 ,派生类在构造函数种要记得初始化基类的参数。
如要初始化派生类的成员,当用初始化列表初始化时 ,要把基类的初始化放在派生类初始化的前面 
 

对基类中的对象来说:

protected 关键字  在类外不能被访问 ,在派生类种可以被访问
private  无论在哪里都不能被访问

访问控制

在类内无论关键字是什么都可以访问

共有的在公有派生类中可以访问

共有成员被保护继承 在派生类中可以访问 在类外不能访问
保护成员被保护继承 在派生类中可以访问 在类外不能访问

多态性

  多态是指同样的消息被不同类型的对象接受时导致不同的行为。

四类多态性

  重载多态,强制多态,包含多态和参数多态  //重载,强制和参数多态是编译时多态

多态的实现

编译时的多态                             运行时的多态
编译时确定执行的函数是什么             运行时确定执行的函数是什么
静态绑定                            动态绑定/晚期绑定/后绑定

运算符重载

 Complex operator + (const Complex &other)const
    {
        Complex ret(this->real+other.real,this->imag+other.imag);
        return ret;
    }
//重载了一个  + 运算符

函数返回值可以选择返回引用类型的值 ,只要返回的那个对象的空间还在,就可以。

eg:

对于一个默认的C++类中默认存在的函数

虚函数

在  基类中调用的函数  前面加上  virtual

virtial  void fn() {cout << "base"<< endl};

virtial  必须加在基类   两个函数必须同名同参

 虚函数实现的包含性,使用的时候不需要改变 指针的类型 。

对于基类存储大小的变化: 在加上了虚函数之后内存增加了8个字节(增加了一个指针)

 虚表———— 虚函数表的简称   
 是一个数组   装的都是指针//函数指针数组   是虚函数的函数指针数组
                          //并且是静态的
  //加上了virtual之后这个类就会存在一个虚表,当调用虚函数的时候程序会去查找虚表。
 

注意:

        析构函数一般都是虚函数

        全局函数不能是虚函数
        静态成员函数不能是虚函数
        构造函数不能为虚函数

纯虚函数 声明:virtual void  speak() = 0;

若一个函数中有一个纯虚函数,该抽象类无法创建对象                    -------抽象类
 
 一个类只有纯虚函数没有别的函数 就是                                                -----接口类

泛型编程 (类型参数化过程)

template <typename T>                              //auto不能作为形参

解决类型不匹配的函数传参问题
此时在 函数中加上  eg:

                  printfArray(T *p, int len)
                    {
                            xxxxxx;
                    }

注意: 如果函数模板与函数同名 则先调用函数,函数模板可以放在头文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值