N******K 发帖数: 10202 | 1 ( in file a.cpp line 21)
shared_ptr sp1(new ClassXXX)
DEBUG_CODE(register(sp1.get(), "ClassXXX", "a.cpp", 21))
...
( in file b.cpp line 11)
shared_ptr sp2(new ClassXX)
DEBUG_CODE(register(sp2.get(), "ClassXX" "b.cpp", 11))
ClassXXX和ClassXX都继承一个基类 BaseClass
register(BaseClass*, std::string, std::string, long)
~BaseClass()
{
DEBUG_CODE(unregister(this);)
}
在main程序结束的时候
print_register_record() 如果这两个类没有被销毁 那么
unregistered class list
ClassXXX in a.cpp ,line 21
ClassXX in b.cpp ,line 11
大家看看 有啥问题么? | N******K 发帖数: 10202 | 2 忘了说了
main(arg)
{
register 初始化
inner_main(arg)
print class list here
}
inner_main(arg)
{
把其他程序都搞到这里
}
【在 N******K 的大作中提到】 : ( in file a.cpp line 21) : shared_ptr sp1(new ClassXXX) : DEBUG_CODE(register(sp1.get(), "ClassXXX", "a.cpp", 21)) : ... : ( in file b.cpp line 11) : shared_ptr sp2(new ClassXX) : DEBUG_CODE(register(sp2.get(), "ClassXX" "b.cpp", 11)) : ClassXXX和ClassXX都继承一个基类 BaseClass : register(BaseClass*, std::string, std::string, long) : ~BaseClass()
| g****s 发帖数: 340 | 3 没怎么用过shared_ptr,但inner_main之前就可以完成memory allocation,可以不用
dynamic memory。而且你要是只关心inner_main之后的memory,那循环根本不是问题,
反正main要退出了。 | N******K 发帖数: 10202 | 4 算法吃内存 这个可以用来做模块调试
【在 g****s 的大作中提到】 : 没怎么用过shared_ptr,但inner_main之前就可以完成memory allocation,可以不用 : dynamic memory。而且你要是只关心inner_main之后的memory,那循环根本不是问题, : 反正main要退出了。
|
|