0

私はvs2010で次のように書いています:

int test() const;

constそれは間違って使用されていることを教えてくれます.そして言った:

非メンバー関数では型修飾子を使用できません

なぜ、それはvsの問題なのか、それともvsでそのような関数を使用する方法なのか?

4

2 に答える 2

1

const関数に適用された場合、非静的メンバー関数にのみ適用され、フリー関数や静的メンバー関数には適用されません。

class A
{
    void f1() const;        // OK
    static void f2() const; // Not OK
};

void f3() const; // Not OK

C ++標準から:

  • 9.3.1非静的メンバー関数

非静的メンバー関数は、const、volatile、またはconstvolatileとして宣言できます。

  • 9.4.1静的メンバー関数

静的メンバー関数は、const、volatile、またはconstvolatileとして宣言してはなりません。

于 2012-08-15T14:05:46.963 に答える
0

そのコンテキストでの const は、このメソッドがメンバー変数を変更しないことを意味します。クラスのメソッドでない場合 (つまり、自由浮動関数である場合)、意味がありません。

于 2012-08-15T14:05:17.703 に答える