7

間に違いはありますか

class C {
    static int func();
};

class C {
    int static func();
};

他の誰かのコード ベースでキーワードstaticを削除しようとしています。その前に、2 番目の例が何を意味するのかを理解しておきたいと思います。

[編集] staticを削除する理由: C はメンバー変数を持たず、静的メソッドでいっぱいの「クラス」でした。「C」はクラスではなく、通常の機能を持つ名前空間にする方が適切だと思います。

4

2 に答える 2

10

違いはありません。static関数宣言で、関数に適用されます。ポインターは暗黙的にこの関数に渡されないため、オブジェクトを明示的に渡すことなく、この関数内の非静的クラス メンバーにアクセスすることはできません
this

最初のものを削除するstaticには、このように設計されている目的を知り、理解する必要があります。それを考慮に入れなければ、膨大な量のコードの匂いがすることになります。

于 2013-04-19T14:21:37.190 に答える
3

はい、最初のケースではキーワードstaticが type の前にありint、2 番目のケースではその逆です。ただし、C および C++ の多くの場合と同様に、意味上の違いはありません。ですから、「見た目」以外に違いはありません。

一般的な規則としてクラスで削除したい理由がわかりません.staticメンバー関数が宣言されているのにはおそらく正当な理由がありますstatic.

于 2013-04-19T14:21:53.130 に答える