2017-08-10 19 views
-4

静的メンバー関数をconstにすることができないところを見ました。以下のコードでは、静的メンバー関数がconstであるコードブロックでこれを実行しようとしたときに実際に出力されました。それで、これは可能ですか?または、新しいバージョンのC++でのみサポートされていますか?メンバ関数のためのConst静的メンバー関数

#include<iostream> 
using namespace std; 


class s{ 
    public:static const int x=2; 
    const static int fun(){ 
     return x+1; 
    } 
}; 


int main(){ 
    s obj; 
    cout<<obj.x<<endl; 
    cout<<obj.fun()<<endl; 
    return 0; 
} 

output: 2 
     3 
+4

この関数は定数ではありません。それが返すintはです。 –

+0

私はconstとして静的関数を指定しました –

+0

メソッドを 'const'にすると、' const'が最後になります。最初に置いた場合は、 'const'と表示された戻り値です – litelite

答えて

1

const修飾子は、関数の引数リストの後に書かなければなりません、それは静的メンバ関数のために許可されていません:あなたはそれがはるかになりませんが、代わりにconst intを返す関数を宣言し

static int fun() const // error const qualifier is not allowed on static member function 
{ 

いずれかの感覚。

関連する問題