如题
Interface IBaseInteface
{
   public getname() as string
}class exdclass1 implements IBaseInteface

  public getname() as string 
    {
       getname="wang"
}

class exdclass2 implements IBaseInteface

  public getname() as string 
    {
       getname="li"
}
}//调用
  dim basein as IBaseInterface
  set basein = new exdclass1
     msgbox basein.getname//得到"wang"
  set basein = new exdclass2 
     msgbox basein.getname//得到"li"以上代码在JAVA中相差无几,同样可以实现
象这种发式在VB中就实现了多态性了,在VC中如何实现,不许使用抽象基类的方法,一定要使用接口,如何实现呀

解决方案 »

  1.   

    看看com的基础教程就可以知道 c++写的com中接口是用一个struct来完成的
    win32sdk中有这样的定义
    #define interface struct
    当然接口中所定义的都是纯虚函数(除了声明为virtual后还要在最后声明=0;
    接下来就是使用一个派生自接口的类来实现具体的函数了 这里也要使用同名的虚函数
      

  2.   

    高深问题?多态是C++的发明!多态的实现是通过虚函数实现的。class Parent
    {
    virtual fun1()=0;
    };
    class Children :public Parent
    {
      virtual fun1(){ ...}
    };
      

  3.   

    yes
    看看java c#中对接口都分出了一个关键字 其实在c++中接口就是一个结构或者一个类
    这些东西都是从c++学来的
    我把你的代码用一个struct作为接口写了一下 你看看吧 在c++中就是用虚函数来实现多态
    (在vc6中新建一个console的project 然后选择release版本编译通过)
    #include <iostream>struct IBaseInterface
    {
       virtual char* getname()=0;
    };class exdclass1:public IBaseInterface
    {
        public:
    virtual char* getname() {
           return "wang";
    }
    };class exdclass2:public IBaseInterface
    {
    public:
    char *getname() {
    return "li";
    }
    };void main(void)
    {
    IBaseInterface *pbase;
    pbase=new exdclass1;
    std::cout<<pbase->getname()<<"\n";
    delete pbase;
    pbase=new exdclass2;
    std::cout<<pbase->getname()<<"\n";
    delete pbase;
    }
      

  4.   

    sorry第二个派生类中的函数少了virtual
      

  5.   

    什么意思?
    C++的多态用不着模拟,语言本身就支持,不象VB,垃圾语法
      

  6.   

    vb中的 implements ??是多态么??
    不是为了在com中包含不止一个类么?
    楼主把我知道的那点东西都给搞糊涂了。在com中不事用类场实现的么?