2017-02-07 4 views
1

私はHELibのソースコードを読み取り、次のクラスdefinitionに遭遇しています:関数はリターンconstでオーバーロードされていますか?

#define CLONED_PTR_DECLARE(CLONED_PTR_TYPE,CLONED_PTR_INIT) \ 
\ 
template <class X, class Cloner = CLONED_PTR_INIT<X> > class CLONED_PTR_TYPE \ 
{ \ 
...... 
    const X* get_ptr() const { return ptr; } \ 
    X* get_ptr() { return ptr; } \ 
...... 
}; \ 
\ 

しかし、私の理解ごとに、C++は、戻り値で関数のオーバーロードはありません。では、これら2つの機能の効果は何ですか?get_ptr()

+1

違いは戻り値の型だけではありません。もう一度見てください。 – user2357112

+0

(質問は重複しているようには見えないが、その答えはあなたの質問に答えている) – Ryan

答えて

0

戻り値の型ではなく、constキーワードです。クラスのconstインスタンスでメソッドを呼び出すと、constメソッドが呼び出されます。

関連する問題