C++多态

作者: 灵魂玖玖 | 来源:发表于2017-12-18 09:09 被阅读0次

一 .动态多态

例子:

.h

class Staff {

public:

virtual float money(int day) =0;//纯虚函数 【不可被实例化】

};

class Staff_boos:public Staff {

public:

virtual float money(int day);//定义为虚函数的函数 可以在子函数里面 从新更改内容,这叫多态

};

class Staff_staff :public Staff {

public:

virtual float money(int day);

};

.cpp

void main() {

char op;

cin >> op;

Staff * pTest = NULL;

while (op!='q') {

if (op=='j') {

pTest = new Staff_boos();

cout << pTest->money(1) << endl;

}

else if (op=='k') {

pTest = new Staff_staff();//一个知识点 这才叫 基指针 指向 儿子

cout << pTest->money(10) << endl;

}

else {

cout <<"test" << endl;

}

delete pTest; //new出来的当然需要删除。。。

pTest = NULL;

cin >> op;

}

}

float Staff::money(int day) {

return 0;

}

float Staff_boos::money(int day) {

return day*128.5f + 3000;

}

float Staff_staff::money(int day) {

//cout <

return day * 58;

}//值得注意的是。。这要求参数必须一样。。。

二.创造这样的虚类函数 析构时应特别注意

1.只要基类的析构函数是虚函数,则其所有的子孙都是虚函数

2.在设计一个类层次时 记得要把基类析构函数声明为虚函数

3.虚函数声明 virtual ~类名();

4.当然,在有new的时候要格外小心


三.其他例子

函数重载/函数模板的个例  就是多态

相关文章

  • 深刻剖析之c++博客文章

    三大特性 封装、继承、多态 多态 C++ 虚函数表解析C++多态的实现原理 介绍了类的多态(虚函数和动态/迟绑定)...

  • 多态的C++实现

    多态的C++实现 1 多态的原理 什么是多态?多态是面向对象的特性之一,只用父类指针指向子类的对象。 1.1 多态...

  • C++ 的多态(Polymorphism), virtual f

    多态 c++支持两种多态,编译时多态和运行时多态但其实编译时多态根本不是真正的多态,编译时多态就是函数的重载,ov...

  • C++第六篇多态

    C++中的多态性分为编译时多态性和运行时多态性,编译时多态通过函数重载和模板体现,运行多态通过虚函数体现编译、连接...

  • 面试题目收集总结

    C++: 多态: 多态性都有哪些?(静态和动态,然后分别叙述了一下虚函数和函数重载) c语言和c++有什么区别?(...

  • C++的多态

    C++三大特性:封装、继承和多态。其中最好理解的就是封装了,继承作为C++面向对象的特征也不难理解,那么多态,应该...

  • 实现golang语言的多态

    如何实现golang语言的多态? C++里面有多态是其三大特性之一,那么golang里面的多态我们该怎么实现? g...

  • Swift 多态实现探究

    多态 父类指针指向子类对象 Swift 中多态的实现类似于 c++ 中的虚表 OC 多态实现利用的是 Runtim...

  • C++编译期多态和运行期多态

    C++多态有多种实现方式,在面对对象编程时,采用的是运行期多态,也称动态多态。在泛型编程中,多态基于模板的具现化与...

  • c++多态

    什么是多态性? 多态:相同对象收到不同消息或不同对象收到相同消息时产生不同的动作。C++支持两种多态性:编译时多态...

网友评论

      本文标题:C++多态

      本文链接:https://www.haomeiwen.com/subject/cdepwxtx.html