c++関数にconstを付ける意味:

1822 ワード

定義したクラスのメンバー関数には、クラスのデータ・メンバーを変更しないメンバー関数がよくあります.つまり、これらの関数は読み取り専用関数であり、クラスのデータ・メンバーの値を変更する関数もあります.データメンバーを変更しない関数にconstキーワードを付けて識別すると,プログラムの可読性が向上することは明らかである.実際には、プログラムの信頼性も向上し、constのメンバー関数として定義されており、データ・メンバーの値を変更しようとすると、コンパイラはエラーで処理されます.constメンバー関数とconstオブジェクトは、実際には、constメンバー関数には定数オブジェクト相関というもう一つの役割があります.組み込まれたデータ型では、定数を定義できます.ユーザーがカスタマイズしたクラスでも、定数オブジェクトを定義できます.1、非静的メンバー関数の後にconst(非メンバー関数または静的メンバーの後に追加するとコンパイルエラーが発生する)2、メンバー関数の暗黙的な入力を表すthisポインタはconstポインタであり、このメンバー関数では、そのクラスのメンバーを任意に変更する操作は許可されないことを決定します(thisポインタに対するconst参照が暗黙的に含まれているため).3、唯一の例外はmutable修飾のメンバーです.constを追加したメンバー関数は、非constオブジェクトとconstオブジェクトで呼び出すことができますが、constを追加しないメンバー関数は、非constオブジェクトでのみ呼び出されます.
char getData() const{         
		return this->letter;
}

c++関数の前後でconstの役割を使用します.
  • 前にconstで示す戻り値はconst
  • である.
  • の後にconstを付けて関数を表すclassのメンバー
  • を修正することはできません
    この2つの関数を見てください
    const int getValue();
    int getValue2() const;
    /*
     * FunctionConst.h
     */
    
    #ifndef FUNCTIONCONST_H_
    #define FUNCTIONCONST_H_
    
    class FunctionConst {
    public:
        int value;
        FunctionConst();
        virtual ~FunctionConst();
        const int getValue();
        int getValue2() const;
    };
    
    #endif /* FUNCTIONCONST_H_ */
    

    ソースファイルでの実装
    /*
     * FunctionConst.cpp 
     */
    
    #include "FunctionConst.h"
    
    FunctionConst::FunctionConst():value(100) {
        // TODO Auto-generated constructor stub
    
    }
    
    FunctionConst::~FunctionConst() {
        // TODO Auto-generated destructor stub
    }
    
    const int FunctionConst::getValue(){
        return value;//     const,         .
    }
    
    int FunctionConst::getValue2() const{
        //       class FunctionConst      value
        value = 15;//   ,         const
        return value;
    }
    

    作者:https://blog.csdn.net/SMF0504/article/details/52311207本文は博主のオリジナルの文章で、転載して博文のリンクを添付してください!