const関数について

特徴

  • 返り値を参照にしても左辺値になれない。
  • メンバ関数はconst属性を指定できる。

    const指定の方法

  • 返り値が参照の場合(参照でなければ意味がない。メンバ関数でなくてもよい。)
    例:const 任意の型& func(); →左辺値になれない。
  • メンバ関数において
    例:任意の型 func()const; →constオブジェクトから呼び出しができる。メンバの変更が禁止される。
    class A {
    	int	i;
    public:
    	const int& m(){return i;}
    	int m2()const{return i;}
    };
    
    	int	i;
    	const A	a1;
    	A	a2;
    	a1.m1() = i;	// 不可 左辺値になれない
    	i = a1.m1();	// 不可 constオブジェクトからはconstメンバ関数のみ使用可
    	i = a1.m2();
    	a2.m1() = i;	// 不可 左辺値になれない
    	i = a2.m1();
    	i = a2.m2();
    
    

    戻る