C++ Interface接口种中的纯虚函数是否占用内存
C++ Interface接口类中的纯虚函数是否占用内存?
例: 设二个库 A.DLL, B.DLL
A.DLL如下
interface ITest
{
public:
virtual ~ITest() {}
/// 测试OK
virtual int TestOK() = 0;
}
B.DLL如下
class AppTest : public ITest
{
private:
int x, y, z;
public:
virtual int TestOK() { return true; }
}
如果我要A.DLL库中为ITest接口为添加一个 virtual int TestNO() = 0; 接口, 是否会影响到B.DLL AppTest类中的变量x,y,z内存布局
------解决方案--------------------
不会!
但是在接口中添加新的方法是致命的!
应该创建一个新的接口!
------解决方案--------------------
纯虚就是用来覆盖的,这么说,你理解了吗?
------解决方案--------------------
有虚函数就有多一个函数指针表,占一个指针大小的内存。
------解决方案--------------------
例: 设二个库 A.DLL, B.DLL
A.DLL如下
interface ITest
{
public:
virtual ~ITest() {}
/// 测试OK
virtual int TestOK() = 0;
}
B.DLL如下
class AppTest : public ITest
{
private:
int x, y, z;
public:
virtual int TestOK() { return true; }
}
如果我要A.DLL库中为ITest接口为添加一个 virtual int TestNO() = 0; 接口, 是否会影响到B.DLL AppTest类中的变量x,y,z内存布局
------解决方案--------------------
不会!
但是在接口中添加新的方法是致命的!
应该创建一个新的接口!
------解决方案--------------------
纯虚就是用来覆盖的,这么说,你理解了吗?
------解决方案--------------------
有虚函数就有多一个函数指针表,占一个指针大小的内存。
------解决方案--------------------