c++ - 变量和 setter/getter 的 Qt 命名约定,这样它们就不会发生冲突?

标签 c++ qt naming-conventions

在我的一个类中,我有一个成员“QSize frameSize”。我想为它做一个getter函数,自然而然地想到了“QSize frameSize()”,但那将与变量名相同!在 Qt 中,惯例是不使用 getFrameSize,那么他们如何避免在自己的源代码中发生名称冲突?

最佳答案

好吧 - 首先:使用源代码,Luke! Qt source code在开放源代码许可下可用,因此您可以自由检查它们的工作方式。

也就是说,在绝大多数情况下 Qt 没有这个问题,因为大多数公共(public)类只有一个成员变量(“d 指针”),因为它们实现了 pimpl idiom .所以他们可能有这样的功能

int QSomeThing::foo() const {
    return d->foo;
}

最后但同样重要的是,我不知道 Qt 源代码中的成员变量有任何全局命名规则,但有一些公认的约定。我碰巧使用的是在所有成员变量的名称前加上m_(表示它是成员)。因此,在我的源代码中,上面的函数(假设我不使用 pimpl 习惯用法)看起来像:

int QSomeThing::foo() const {
    return m_foo;
}

您的里程可能会有所不同。

关于c++ - 变量和 setter/getter 的 Qt 命名约定,这样它们就不会发生冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8876749/

相关文章:

c++ - 我可以在代码行中翻译 ADDRESS 吗?

c++ - 链接 operator<< 和 operator++ 的问题

qt - 如何使用 gcc 命令单独制作 ffmpeg 可执行文件?

c++ - 在屏幕右侧显示主窗口(Qt 5.1.0)

database - 主键列的命名约定是什么?

python - 用于 Python 扩展包的非官方 Windows 二进制文件的 Christoph Gohlke 命名约定

c++ - std::array 中的编译时间范围检查

c++ - 用Qt初始化ts文件?

.net - 为什么 .Net 中的常量不是全部大写?

c++ - 将返回值存储在引用中性能最差吗?