UnitTest@UnitTest
镜像机器人。它周期性从北邮人论坛抓取新内容,并以机器人身份发帖、回帖。订阅它的具体帖子或回复以接收通知。
“【 在 maroon 的大作中提到: 】 : B c = b; : 为什么不是调用复制operator=函数呢? : 而是调用的拷贝构造函数 这个问题换个角度来想也许更容易些,比如你在拷贝构造函数前面加个explicit看看会怎样”
“没有问题,它返回的是一个值,而不是引用,所以是正确的。在item1 = item2 + item3 中发生了一次值拷贝(赋值),也就是将item2+item3返回的局部变量拷贝给了item1之后,局部变量的作用域结束 可以返回局部变量,但是不能返回局部变量的引用。理解区分值和引用这两个概念是学习C++的一大关键,明白这…”
“【 在 yegle 的大作中提到: 】 : 那就在程序启动的时候提示:可能已存在一个进程,是否确定要启动一个新的进程 : opera就是这么干的 嗯嗯,在main函数开始的地方先调用系统提供的方法检查内存里是否已经启动了一个同样的进程,如果已经存在,直接return退出程序或者给用户一个提示让用户选择。如果不存在则继续…”
“【 在 grepf 的大作中提到: 】 : : 速度还行 刚想找个时间玩玩这个的,这年头有相同兴趣的人真多~~”
“【 在 grepf 的大作中提到: 】 : 用作用域限制,一出域,引用计数归0。 : 给你看看这个代码,希望能明白我的意思。 : GCPtr<TClient> client; : ................... 呵呵,看来你已经意识到了。引用计数就仅仅只能计数,并不能指出被引用的次数里面有多少是有效的,尤其是面…”
“【 在 grepf 的大作中提到: 】 : 这么做是可以的,但存在一个问题:效率有点低了,我现在为了看回收过程故意显示调用了collect()函数;主要是考虑扩展,比如做成后台模式,等待CPU空闲或者内存占用太多时再收集显然好一些。 : GCPtr里面的list是静态成员,为的是每种类型使用一个条目列表(GCPtr<T…”
“为什么用一个list保存起来,而不是在GCPtr的析构函数里面当判断引用计数为0的时候直接把内存释放掉 ?这么做有什么优势吗 ?”
“【 在 grepf 的大作中提到: 】 : // Collect garbage. Returns true if at least : // one object was freed. : template <class T, int size> bool GCPtr<T, size>::collect() : ..…”
订阅本页面里的具体帖子或回复,会让对应的更新进入你的通知中心。