C ++ const를 클래스 기능은 의미를 추가 한 후

우리의 클래스 멤버 함수가 종종 멤버 함수는 클래스의 데이터 멤버를 변경하지 않는이, 정의, 즉, 이러한 기능은 기능을 "읽기 전용"하는 말을하는 것입니다,하지만 클래스 데이터 멤버의 값을 수정하는 몇 가지 기능이있다. 우리는 멤버 함수는 const 키워드가 확인에 추가 된 데이터를 변경하지 않으면, 분명히, 프로그램의 가독성을 향상시킬 수 있습니다. 실제로,이 프로그램의 신뢰성을 향상시킬 수있는 컴파일러 에러 처리에있어서, const 멤버 함수를 정의하고, 한 번 데이터 멤버 값을 수정하려고 . 사실, const 멤버 함수 및 CONST 대상에 관한 일정 개체이다 const 멤버 함수의 다른 역할이있다. 내장 데이터 유형, 우리가 그들의 상수를 정의 할 수 있습니다를 들어, 사용자 정의 클래스 역시 자신의 일정 객체를 정의 할 수 있습니다.
(1) 비 정적 CONST 멤버 함수 플러스 (또는 비 부재 뒤에 컴파일러 에러를 범인가 정적 멤버 함수) 뒤에서
2 내재적이 포인터를 전달 멤버 함수 포인터 CONST이다 나타내는 멤버 함수를 결정하고, 임의의 변형 클래스에서의 멤버의 동작 (이 때문에 암시 CONST 포인터 참조)는 허용되지 않으며,
3, 유일한 예외는 가변 부재에 대해 수정된다. 게다가 const 멤버 함수는 const가 아닌 객체와 const를 객체를 호출 할 수 있지만, const 멤버없이 기능 만 const가 아닌 객체를 호출 할 수 있습니다

char getData() const{         
		return this->letter;
}

작업 CONST의 전면과 후면을 사용하여 C ++ 기능 :

  • 리턴 값을 사용하여 전방의 CONST CONST를 나타낸다
  • 클래스의 표현의 증가 뒤에 const 멤버 함수는 수정 될 수 없습니다

이 두 가지 기능 봐

CONST의 INT getValue ();

getValue2 ()을 const int로;

/*
 * 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;
}

추천

출처www.cnblogs.com/YZFHKMS-X/p/11756404.html