如题
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中如何实现,不许使用抽象基类的方法,一定要使用接口,如何实现呀
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中如何实现,不许使用抽象基类的方法,一定要使用接口,如何实现呀
win32sdk中有这样的定义
#define interface struct
当然接口中所定义的都是纯虚函数(除了声明为virtual后还要在最后声明=0;
接下来就是使用一个派生自接口的类来实现具体的函数了 这里也要使用同名的虚函数
{
virtual fun1()=0;
};
class Children :public Parent
{
virtual fun1(){ ...}
};
看看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;
}
C++的多态用不着模拟,语言本身就支持,不象VB,垃圾语法
不是为了在com中包含不止一个类么?
楼主把我知道的那点东西都给搞糊涂了。在com中不事用类场实现的么?