调试疯狂的系统。 类的构造函数被多次调用,它们的内存地址是相同的。这是否意味着它们是同一个对象? 创建对象@ 0xa3d82a0 创建对象@ 0xa3d82a0 创建对象@ 0xa3d82a0
我也看到xxxx是一个守护进程。 守护进程意味着什么?
谢谢!
答案 0 :(得分:1)
这可能只是意味着构造函数被保存在同一块内存中(引用的位置和所有这些)以节省内存。
至于问题的第二部分,引用:“守护进程(或服务)是一个后台进程,旨在自动运行,几乎不需要用户干预。”
Taken from here(不要打扰页面上的任何链接,它们似乎都死了。但是,只是拙劣的锚标签。)
答案 1 :(得分:1)
不,这不是同一个对象。一个对象只能构造一次。您看到的行为并非不可能,例如,如果在循环中在堆栈上分配了许多对象:
#include <iostream>
using namespace std;
struct A {
A() { cout << "Creat" << this << endl; }
};
int main() {
for (int i = 0; i < 5; i++) {
A a;
}
}
这里'a'将在同一个位置重建,打印如下:
Creat0xbfcd871f
Creat0xbfcd871f
Creat0xbfcd871f
Creat0xbfcd871f
Creat0xbfcd871f