存储分配何时在C++进行
When does the storage allocation takes place in C++?
class A
{
public:
A() {}
};
A b; //global variable
void fun(void)
{
A a;
}
int main()
{
fun();
}
在此代码中,我有 2 个问题(已更新)
对象 a 的存储何时分配,当 fun() 在 main() 中调用时,即在运行时或在编译时
?对于全局变量 b,何时为其分配存储以及何时调用其构造函数?
a
是分配在 fun()
主体中的局部变量。 每次调用 fun()
时都会实例化A
,然后在对象超出范围时将其取消实例化(销毁、析构函数调用)——在本例中是 fun()
返回时。
A
的构造函数在对象实例化时被调用。
这些都不会在编译时发生。
相关文章:
- 通过递归进行因子分解
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 使用libgit2、c++进行pull
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 如何使用模板函数的函数签名进行SFINAE
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 将模板化的类型与C++中的某些类/类型进行比较
- 在c++中尝试对对象数组进行排序时,出现std:bad_alloc错误
- 如何对点云数据进行排序
- 从文本文件中读取时钟时间和事件时间并进行处理
- 对字符串进行位操作
- 是否可以使用winusb同时与多个相同的usb设备进行通信
- 是否可以对零模板参数进行模板专门化
- 对字符串进行排序时,在c++中处理sort()
- 试图对缓存进行跨步测试,但程序并没有结束
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- C++将目录中的所有文件与::filesystem进行比较