什么是C++中的辅助函数?

Sum*_*era 25 c++ helper-functions

我试图从C++中理解辅助函数The C++ Programming Language by Bjarne Stroustrup.但是这本书没有解释任何关于它的内容以及在课堂上使用它的目的.我尝试在网上搜索它并发现了这一点.我有它的要点,但仍然不清楚辅助函数的真正目的是什么,何时我应该使用它们,总的来说,什么是辅助函数?

Lih*_*ihO 28

"辅助函数"不是你在标准中找到的术语,也不是一个确切的定义...标准提到 "助手类" "助手模板"几次来引用一个类,这并不意味着由最终用户实例化,但它提供了在另一个类内部使用的有用功能.

辅助函数(我相信大多数人在说出来时的意思)通常是函数,它包含了一些你将要重用的有用功能,很可能一遍又一遍.您可以创建辅助函数,用于许多不同的目的......

一个例子可能是任何类型的转换函数,例如将多字节编码的函数转换std::stringstd::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)

  • @MattiVirkkunen:我编辑过它听起来不像是一个定义. (3认同)

Ole*_*vko 7

CppCoreGuidline有一个很好的helper函数定义:

辅助函数是一个函数(通常由类的编写者提供),它不需要直接访问类的表示,但却被视为类的有用接口的一部分.将它们放在与类相同的命名空间中会使它们与类的关系变得明显,并允许通过参数依赖查找来找到它们.

有关详细信息,您可以使用一个明确的示例检查该段落,从中获取上部引用.