gpt4 book ai didi

c++ - 在 C++(类)中,我总是需要在头文件中声明函数吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:03 25 4
gpt4 key购买 nike

例如,我有一个 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 之外的函数,在该文件中声明和定义它就足够了。当然你仍然需要在第一次使用之前声明它,但这是我能想到的唯一“问题”。

如果不需要,最好不要在 header 中声明该函数,因为您使用的“project-public”名称更少,并且更容易找到该函数的所有用途,从而使代码更易于维护。

如果您没有在 header 中声明函数,则应将其设为static:

static bool validateFloats(const visualization_msgs::Marker& msg);

或者放在匿名命名空间中:

namespace {
bool validateFloats(const visualization_msgs::Marker& msg);
}

(首选)以避免意外的交叉翻译单元名称冲突。

关于c++ - 在 C++(类)中,我总是需要在头文件中声明函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42775004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com