C++const型メンバー関数とnon-const型メンバー関数(二)

2022 ワード

C++const型メンバー関数とnon-const型メンバー関数
const型変数の意味は、const_を除いて、一般的な形式で私の値を変更したくないことをコンパイラに伝えることです.castは定数性を除去する.
vs 2013エラー:constが失われました
class Test
{
public:
    int& get() const
    {
        return p;
    }
                    //      : "int& "        “const int”         ,      
private:
    int p;
};

したがって、constによって修飾されたメンバー関数(修飾関数の戻り値ではない)は、その内部で現在のクラスのメンバー関数を修飾できないだけでなく、修飾可能な参照を開いたり、コピーを返したり、戻り値をconstによって修飾したりすることはできません.これは、const型メンバー関数がconst戻り値と組み合わせる理由を説明しています.
  • (1)レプリカ(コピー)
    int get() const
    {
        return p;
    }
  • を返す.
  • (2)戻り定数参照
    const int& get() const
    {
        return p;   
    }
  • (3)1と2はリロードを構成することができず、リロードできない戻りタイプ別の関数
  • のみをリロードする.
    初期化パラメータリストのベースクラス構築パラメータの転送
    class Base
    {
    public:
        Base(int& );
    };
    class Derived: public Base
    {
    public:
        Derived(const int& p):Base(p) { ... }
                        //   const int&     int&          
                        //   const int&     int        ,       
    };