【发布时间】:2022-01-15 01:25:22
【问题描述】:
形成下面的链接Difference between Definition and Declaration 说:
变量的定义说明了变量的存储位置。 IE。, 变量的内存是在定义的过程中分配的 变量。
据我所知,类的声明如下:
class stu ;
类的定义如下:
class stu{
public:
int x;
};
所以从上面的信息来看,这个类的内存分配应该在我写完类的完整定义时发生。但是, 来自this link 说:
创建类的实例时将分配内存。
这意味着内存将在我写的那一刻被分配
stu s;
所以我想知道内存为这个类分配的确切时间,换句话说,它发生在编译时或运行时?
【问题讨论】:
-
您的引文说“变量的定义 [...]”。类定义本身不是变量定义。
-
变量的定义和类的定义是完全不同的两件事
-
为了清楚起见,声明或定义类都不占用任何内存(编译器除外,在编译时)。但现在我们讨论的是编译器实现,而不是你的程序。
-
@Mat ,哦,我不知道这一点,你能告诉我更多关于“变量的定义”和“类的定义”之间的区别或任何有细节的参考吗?谢谢!
标签: c++ class memory-management