作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个头文件 armorshop.h,其中包含一个类定义,以及该头文件的相应 .cpp。
我的问题是:
谢谢
//scenario 1
//armorshop.h
#ifndef __SFML__armorshop__
#define __SFML__armorshop__
class armorshop : public entity
{
public:
};
int allocatedmemory1;
sf::FloatRect allocatedmemory2;
class armorshop allocatedmemory3;
std::vector<armorshop> allocatedmemory4;
#endif
(问题 3 关于场景 1 的说明:)如果我 #include "armorshop.h"
多次会导致错误
//scenario 2
//armorshop.cpp
int allocatedmemory1;
sf::FloatRect allocatedmemory2;
class armorshop allocatedmemory3;
std::vector<armorshop> allocatedmemory4;
最佳答案
- How does allocated memory get freed in c++?
如何释放内存取决于实现,以及内存最初是如何分配的。
- Will allocatedmemory1, allocatedmemory2, allocatedmemory3, or allocatedmemory4 ever be freed on its own in each of these scenarios?
所有这些变量都具有静态存储持续时间。具有静态存储持续时间的对象在 main
返回后被释放。
全局变量是在包含在源文件中的头文件中定义的(场景 1),还是全局变量是直接在源文件中定义的(场景 2),对变量何时“释放”没有影响.
- Do variables and ... get freed when they are not being used
没有任何东西是基于它们是否被使用而被“释放”的。
Do ... classes ... get freed
类没有被“释放”。
If I #include "armorshop.h" multiple times will this cause an error
armorshop.h
定义全局变量。在多个源文件中包含 header 将导致每个源文件定义相同的变量。这违反了一个定义规则。您几乎不应该在 header 中定义全局变量。
附言。 __SFML__armorshop__
是一个保留标识符,因为它包含两个连续的下划线。在您的代码中定义它会使您的程序格式错误。
关于c++ - 如何在 C++ 中释放已分配的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38043769/
我是一名优秀的程序员,十分优秀!