static_const配合void*实现的多态

来源:互联网 发布:魅族移动数据不能上网 编辑:程序博客网 时间:2024/06/03 17:26
#include "stdafx.h"#include <iostream>#include <string>#include <vector>using namespace std;class X{public:    virtual void f(){ cout << "x"; }};class B: public X{public:    //virtual void f(){ cout << "b"; }};class A : public X{public:    virtual void f(){ cout << "a"; }};class D : public A{public:    virtual void f(){ cout << "d"; }};class E : public A{public:    virtual void f(){ cout << "e"; }};class M{public:    virtual void f(){ cout << "m"; }};class N{public:    virtual void f(){ cout << "n"; }};int _tmain(int argc, _TCHAR* argv[]){    //int max[1000][1000];    /*vector<void*> vec;    vec.push_back(new D);    vec.push_back(new A);    vec.push_back(new B);    vec.push_back(new E);    vec.push_back(new X);    for (vector<void*>::iterator it = vec.begin(); it != vec.end(); ++it)    {        static_cast<B*>(*it)->f();    }    static_cast<B*>((void*)new D)->f();*/    static_cast<M*>((void*)new N)->f();    return 0;}
0 0
原创粉丝点击