例如,我有一个markerdisplay.cpp文件。markerdisplay成员函数将类似于以下代码。
void MarkerDisplay::setMarkerStatus(MarkerID id, StatusLevel level, const std::string& text)
{
.....
}
我可以在markerdisplay.cpp中使用非成员函数吗?
例如,
bool validateFloats(const visualization_msgs::Marker& msg)
{
...
}
函数validateFloats不是成员函数,并且我也没有在头文件中声明它。我只在validateFloats.cpp文件中使用此函数。
有人告诉我这可能会引起一些问题。真的吗?
如果您不需要以外的函数.cpp
,则只需在该文件中声明和定义它即可。当然,您仍然必须在首次使用它之前声明它,但这是我能想到的唯一“问题”。
这是相当不错的主意不来的头部声明功能,如果因为你使用了更少的“项目公开”的名称,并使其更容易找到函数的所有用途,从而使代码更易于维护,不需要。
如果您未在标头中声明该函数,则应使其static
:
static bool validateFloats(const visualization_msgs::Marker& msg);
或将其放在匿名名称空间中:
namespace {
bool validateFloats(const visualization_msgs::Marker& msg);
}
(首选)以避免意外的跨翻译单位名称冲突。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句