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

C++动静态联编和纯虚函数,第1张

概述本文章向大家介绍C++动静态联编和纯虚函数,主要包括C++动静态联编和纯虚函数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

动、静态联编

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

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函数

总结

以上是内存溢出为你收集整理的C++动静态联编和纯虚函数全部内容,希望文章能够帮你解决C++动静态联编和纯虚函数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1264585.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存