Sum*_*era 25 c++ helper-functions
我试图从C++中理解辅助函数The C++ Programming Language by Bjarne Stroustrup.但是这本书没有解释任何关于它的内容以及在课堂上使用它的目的.我尝试在网上搜索它并发现了这一点.我有它的要点,但仍然不清楚辅助函数的真正目的是什么,何时我应该使用它们,总的来说,什么是辅助函数?
Lih*_*ihO 28
"辅助函数"不是你在标准中找到的术语,也不是一个确切的定义...标准提到 "助手类"或 "助手模板"几次来引用一个类,这并不意味着由最终用户实例化,但它提供了在另一个类内部使用的有用功能.
辅助函数(我相信大多数人在说出来时的意思)通常是函数,它包含了一些你将要重用的有用功能,很可能一遍又一遍.您可以创建辅助函数,用于许多不同的目的......
一个例子可能是任何类型的转换函数,例如将多字节编码的函数转换std::string为std::wstring:
std::wstring s2ws(const std::string& str)
{
int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0);
std::wstring wstrTo( size_needed, 0 );
MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
return wstrTo;
}
Run Code Online (Sandbox Code Playgroud)
CppCoreGuidline有一个很好的helper函数定义:
辅助函数是一个函数(通常由类的编写者提供),它不需要直接访问类的表示,但却被视为类的有用接口的一部分.将它们放在与类相同的命名空间中会使它们与类的关系变得明显,并允许通过参数依赖查找来找到它们.
有关详细信息,您可以使用一个明确的示例检查该段落,从中获取上部引用.