2012-01-16 28 views
1

私のクラスの1つにメンバー "QSize frameSize"があります。私はそれのためのゲッター関数を作りたいと思って、自然に私は "QSize frameSize()"について考えましたが、それは変数名と同じでしょう! Qtでは、規約はgetFrameSizeを使用しないため、ソースコード内の名前の衝突を避けるにはどうすればよいですか?変数とゲッターの命名規則が衝突しないようにQt命名規則?

+1

[Qtプロパティシステム](http://developer.qt.nokia.com/doc/qt-4.8/properties.html)を参照してください。 – Mat

+2

メンバに 'm_frameSize'という名前を付けるのはなぜでしょうか。 –

+0

@Mat Qtプロパティシステムを私に見せてくれてありがとう。私はそれについて知らなかった。ここの例では、get-prefixの規約を使用しています。つまり、getFrameSize()を使用する必要があります。 – sashoalm

答えて

8

さて、まず、ソース、Luke!を使用してください。 Qt source codeはオープ​​ンソースライセンスのもとで入手可能であるため、どのように動作しているかは自由に確認できます。

ほとんどのパブリッククラスは、pimpl idiomを実装しているため、単一のメンバー変数(「d-ポインタ」)しか持たないため、Qtにはこの問題はありません。だから彼らは、少なくとも最後にではなく、

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

のような機能を持っているかもしれませんが、私はQtのソースコード内のメンバ変数のための任意のグローバル命名規則を認識してないんだけど、いくつかのよく確立された慣習があります。私が使っているのは、すべてのメンバ変数の名前にm_という接頭辞を付けることです(メンバであることを示しています)。だから、私のソースコードでは、上記の関数(私はPIMPLイディオムを使用していないと仮定して)しまうように見える:あなたの走行距離は異なる場合があり

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

0

あなたがあなた自身のクラスでのQtを拡張しようとしている場合、それは内部的にあなたがm_fooまたは単に_fooを使用することができ、一般的にfoo()setFoo()です。あなたが正確であることを望むなら、ソースを見てください。

物事に名前を付ける方法はたくさんありますが、最終的にはそれがあなたのものかあなたの雇用者のものかになります。一貫性があり明確である限り、あまり重要ではありません。このアドバイスはQtの動的プロパティにも及んでいます。