调试一个疯狂的系统。一个类的构造函数被多次调用,它们的内存地址是一样的。这是否意味着它们是同一个对象?创建对象@ 0xa3d82a0 创建对象@ 0xa3d82a0 创建对象@ 0xa3d82a0
我还看到 xxxx 是一个守护进程。守护进程是什么意思?
谢谢!
调试一个疯狂的系统。一个类的构造函数被多次调用,它们的内存地址是一样的。这是否意味着它们是同一个对象?创建对象@ 0xa3d82a0 创建对象@ 0xa3d82a0 创建对象@ 0xa3d82a0
我还看到 xxxx 是一个守护进程。守护进程是什么意思?
谢谢!
这可能只是意味着构造函数被保存在同一个内存块中(引用位置等)以节省内存。
至于问题的第二部分,引用:“守护程序(或服务)是一个后台进程,旨在自主运行,很少或不需要用户干预。”
取自这里(不要理会页面上的任何链接,它们似乎都已经死了。不过,只是拙劣的锚标签)。
不,这不是同一个对象。一个对象只能构造一次。您看到的行为并非不可能,例如,如果在循环中在堆栈上分配了许多对象:
#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