C++ 学习 (容器与继承)

来源:互联网 发布:js 弹窗如何显示GRID 编辑:程序博客网 时间:2024/05/16 23:47

C++ 容器中类型是固定的,一个容器不可能共存多种类型,但是我们可以将一个派生类的普通指针转换成一个基类指针一样,我们也可以把一个派生类的只能指针换成是基类指针。

#include <iostream>#include <stdio.h>#include <algorithm>#include <stdlib.h>#include <ext/memory>#include <vector>using namespace std;class A{   public:   double a;   double discut;   A(double aa = 0, double dd = 0):a(aa), discut(dd){};   virtual void havetopay(){      printf("%.2f\n", a * discut);   }};class B : public A{   public:       double cut;       B(double aa, double bb, double cc){         a = aa;         discut = bb;         cut = cc;       }       void havetopay(){      printf("%.2f\n", a * discut - cut);    }};int main(){ /* 智能指针  vector<shared_ptr<A>> vec; vec.push_back(make_shared<A>(1.0, 0.5)); vec.back()->havetopay(); B b = B(1.0, 0.8, 0.1); vec.push_back(make_shared<B>(1.0, 0.5, 0.1)); vec.back()->havetopay();*/ vector< A *> vec; A a = A(1.0, 0.5); vec.push_back(&a); B b = B(1.0, 0.5, 0.1); vec.push_back(&b); vec.back()->havetopay(); return 0;}
0 0
原创粉丝点击