我对C++比较陌生。我一直在寻找到的Box2D的源代码,以了解人们如何专业地管理他们的代码,发现这种对颇多:为什么做两个功能? (一个是非常量,另一个是const)
那突然出现在我的脑海里inline b2Body* b2World::GetBodyList()
{
return m_bodyList;
}
inline const b2Body* b2World::GetBodyList() const
{
return m_bodyList;
}
问题是,我们如何知道哪些功能我们叫什么名字?这种配对的理由是什么?
啊,我明白了。感谢您的简洁解释和整洁的例子! – 2011-12-30 13:13:01
对不起,但这个例子不好,误导,并且与返回类型无关。函数名称后的'const'运算符表示该代码不能修改struct的内部结构。也许,编译器在使用const引用时选择第二个函数,但结果与在那里没有修改相同。拥有这两个函数根本不会在现实世界中发挥作用 – Ulterior 2011-12-30 14:29:38
@Ulterior:它旨在显示哪个成员函数将在可变'Foo'上调用,哪个成员函数将在'Foo const&'上调用。 – 2011-12-30 14:32:12