加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++动静态联编和纯虚函数

发布时间:2020-12-15 04:52:03 所属栏目:百科 来源:网络整理
导读:动、静态联编 简单的说,静态联编就是在程序编译时就完成的过程,而动态联编是在程序运行中完成的过程 class CA { public: void CAFun() { cout } } CA A; A.CAFun(); //这里就是一个静态联编 静态联编平时使用较多,在C++实现多态时多用动态联编 class CA {

动、静态联编

简单的说,静态联编就是在程序编译时就完成的过程,而动态联编是在程序运行中完成的过程

class CA

{

public:

void CAFun()

{

cout<<"CA----Fun"<

}

}

CA A;

A.CAFun();

//这里就是一个静态联编

静态联编平时使用较多,在C++实现多态时多用动态联编

class CA

{

public:

virtual void Fun()

{

cout<<"CA----Fun"<

}

}

class CB : public CA

{

public:

void Fun()

{

cout<<"CB----Fun"<

}

}

class CD :public CA,public CB

{

public:

void Fun()

{

cout<<"CA----Fun"<

}

}

//这就是一个动态联编

void objFun(CA * src[],int len)

{

for(int i=0;i

{

src[i]->Fun();

}

}

CB B;

CD D;

CA *A[2]={&B,&D};

objFun(A,2);//调用函数

//这里输出

//CB----Fun

//CD----Fun

纯虚函数

class CA

{

public:

virtual void Fun()=NULL;//纯虚函数

}

上面就是纯虚函数的书写方式,那么它有什么作用呢


纯虚函数的作用是为派生类提供一个统一的接口,当一个基类对虚函数没有一个有意义的实现的时候,可以声明纯虚函数


有纯虚函数存在的类,叫做抽象类,因为它存在纯虚函数,所以必定是作为一个基类,所以也叫做抽象基类,它的纯虚函数的实现在派生类中实现,如果派生类没有给出一个实现,那么这个派生类继续作为一个抽象基类存在


抽象基类的特点


抽象基类不能实例化对象,不过可以通过声明指针和引用来指向派生类对象


习惯上,将抽象基类的构造析构属性改为保护

class CA

{

public:

virtual void Fun()=NULL;

virtual void Fun(int n)=NULL;

}

class CB :public CA

{

public:

void Fun()

{

cout<<"CBFun"<

}

}

class CD :public CB

{

public:

void Fun(int n)//CB中没有对CA中重载的纯虚函数进行实现,在这里实现

{

cout<<"CDFun"<

}

}

抽象基类不能实例化对象,不过可以通过声明指针和引用来指向派生类对象

CA *pA;

CB B;

pA=&B;

pA->Fun();

//这里输出CB的Fun函数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读