不需要cpp文件实现的那种。基类只有接口,没有任何的成员变量存在。构造、析构函数的处理不太熟悉,比如:// Ineterface.H
class CInterface
{
public:
CInterface(void){};//构造函数是否一定需要函数体?
~CInterface(void){};//析构函数是否也是一定需要函数体?如果声明析构函数为纯虚函数~CInterface(void) = 0子类怎么实现它?
virtual int Function1()=0;
virtual int Function2()=0;
virtual int Function3()=0;
}
class CInterface
{
public:
CInterface(void){};//构造函数是否一定需要函数体?
~CInterface(void){};//析构函数是否也是一定需要函数体?如果声明析构函数为纯虚函数~CInterface(void) = 0子类怎么实现它?
virtual int Function1()=0;
virtual int Function2()=0;
virtual int Function3()=0;
}
刚漏了析构函数的virtual标识。构造函数会不会影响DLL导出类的内存布局不一致?比如今后我就只是更新DLL,并不对exe工程进行重新build,那么会否带来潜在的由于内存布局不一致导致的DLL访问错误问题?// Ineterface.H
class CInterface
{
public:
CInterface(void){};//构造函数是否一定需要函数体?
virtual ~CInterface(void){};//析构函数是否也是一定需要函数体?如果声明析构函数为纯虚函数~CInterface(void) = 0子类怎么实现它?
virtual int Function1()=0;
virtual int Function2()=0;
virtual int Function3()=0;
}
这个纯虚类的构造、析构函数会否影响子类函数访问的内存布局?我的意思是说如果DLL导出类派生自这个接口类,那么派生类的内存布局的改变是否对于使用接口的客户透明?