我试图通过创建大量对象来了解我将会遇到什么样的内存.我知道每个对象 - 在创建时 - 将在HEAP中为成员变量提供空间,并且我认为属于该类型对象的每个函数的所有代码都存在于内存中的代码段中 - 永久存在.
是对的吗?
因此,如果我在C++中创建100个对象,我可以估计我将需要空间用于对象拥有的所有成员变量乘以100(这里可能的对齐问题),然后我需要代码段中的空间用于单个副本的该类型对象的每个成员函数的代码(不是代码的100个副本).
虚拟函数,多态,继承因素以某种方式进入吗?
动态链接库中的对象怎么样?我假设dll获得自己的堆栈,堆,代码和数据段.
简单示例(可能在语法上不正确):
// parent class
class Bar
{
public:
Bar() {};
~Bar() {};
// pure virtual function
virtual void doSomething() = 0;
protected:
// a protected variable
int mProtectedVar;
}
// our object class that we'll create multiple instances of
class Foo : public Bar
{
public:
Foo() {};
~Foo() {};
// implement pure virtual function
void doSomething() { mPrivate = 0; }
// a couple public functions …Run Code Online (Sandbox Code Playgroud)