【发布时间】:2015-10-09 01:49:11
【问题描述】:
我注意到许多 Poco 类都有一个受保护的析构函数。这使他们更讨厌编码。例如这里是我的一些代码:
struct W2: Poco::Util::WinRegistryConfiguration
{
typedef Poco::Util::WinRegistryConfiguration inherited;
using inherited::inherited;
};
std::string get_documents_folder()
{
W2 regc { "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" };
return regc.getString("Personal", "");
}
当然,如果我可以取消W2 并让regc 具有WinRegistryConfiguration 类型,那会简单得多。但这是不可能的,因为受保护的析构函数。
我意识到可以改用Poco::AutoPtr,但是当自动分配应该可以正常工作时,使用new进行动态分配会浪费资源。
我的问题是:这是什么原因?我是否忽略了什么?
【问题讨论】:
标签: c++ poco-libraries