我對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