- 主题:刚才解决了一个内存泄露的 BUG
本青日常使用 c++ 写一些偏重计算和内存存储的微服务。从来不使用裸指针,一般都是用 shared_ptr 或者 QScopedPointer<> 这种智能指针。对象与对象之间,采用生命周期依赖的方式来管理作用域。也就是每一个对象,必须依附于它的父对象。当父对象删除的时候,所有子对象也跟着销毁。
原以为已经万无一失了。没想到今天发现了一个内存泄露。定位后,发现原来是因为我忘了给个类型搞虚的析构函数。
struct RecordPrivate: QSharedData {}
struct ObjectRecordPrivate: RecordPrivate
{
QStringList samples;
};
struct SampleRecordPrivae: RecordPrivate
{
....
};
在上面这个 ObjectRecordPrivate 里面没写虚的析构函数所以就悲剧了。
--
修改:hgoldfish FROM 59.61.198.*
FROM 59.61.198.*
老鱼好用功啊,用C++就像在道口跳舞。。。
【 在 hgoldfish 的大作中提到: 】
: 本青日常使用 c++ 写一些偏重计算和内存存储的微服务。从来不使用裸指针,一般都是用 shared_ptr 或者 QScopedPointer<> 这种智能指针。对象与对象之间,采用生命周期依赖的方式来管理作用域。也就是每一个对象,必须依附于它的父对象。当父对象删除的时候,所有子对象也跟着销毁。
: 原以为已经万无一失了。没想到今天发现了一个内存泄露。定位后,发现原来是因为我忘了给个类型搞虚的析构函数。
: struct RecordPrivate: QSharedData {}
: ...................
--
FROM 111.199.251.*
这种静态代码检查工具应该能轻松检测出来:有虚函数的类的基类的dtor不是virtual的
--
FROM 114.254.115.*
请问cpp 微服务restful api用哪个框架?
有类似java springboot ,python flask开源微服务框架吗?
--
FROM 223.104.40.*