在我的一个课程中,我有一个成员“QSize frameSize”。我想为它制作一个getter函数,自然我想到了“QSize frameSize()”,但这与变量名相同!在Qt中,约定不使用getFrameSize,那么它们如何避免在自己的源代码中发生名称冲突?
答案 0 :(得分:9)
嗯 - 首先:使用来源,卢克! Qt source code可在开源许可下使用,因此您可以自由查看他们是如何做的。
话虽如此,在绝大多数情况下,Qt没有这个问题,因为大多数公共类只有一个成员变量(“d指针”),因为它们实现了pimpl idiom。所以他们可能有像
这样的功能int QSomeThing::foo() const {
return d->foo;
}
最后但并非最不重要的是,我不知道Qt源代码中的成员变量的任何全局命名规则,但有一些完善的约定。我碰巧使用的是使用m_
为所有成员变量的名称添加前缀(表示它是成员)。所以上面的函数,在我的源代码中,(假设我不使用pimpl习语)看起来像:
int QSomeThing::foo() const {
return m_foo;
}
您的里程可能会有所不同。
答案 1 :(得分:0)
您可能还想查看KDE Coding Style。
答案 2 :(得分:0)
如果您尝试使用自己的课程扩展Qt,通常是foo()
和setFoo()
,您可以在内部使用m_foo
或_foo
。如果您想要精确的话,请查看来源。
有许多方法可以命名,最终归结为偏好(您或您的雇主)。只要你保持一致和清晰,它就不那么重要了。这个建议也延伸到了Qt的动态属性。