C++ Const 함수 예제

C Const Hamsu Yeje



이 기사에서는 C++의 함수와 함께 사용되는 'const' 키워드에 중점을 둡니다. 'const' 키워드는 프로그램 실행 중에 수정할 수 없는 상수 값을 말합니다. C++의 'const' 함수는 데이터 멤버가 클래스에서 변경되도록 제한되어 있는 함수입니다. 'cont' 함수는 개체 값에 대한 예상치 못한 수정을 방지할 수 있으므로 효율적으로 사용됩니다.

예제 1: C++의 Const 멤버 함수 프로그램

여기에 const 멤버 함수의 간단한 프로그램이 있습니다.

#include
사용하여 네임스페이스 성병 ;
수업 내 수업 {
정수 하나에 ;
공공의 :
내 수업 ( 정수 N = 0 ) {
하나에 = N ;
}
정수 getValue ( ) const {
반품 하나에 ;
}
} ;
정수 기본 ( ) {
const 마이클래스 c ( 30 ) ;
마이클래스 c1 ( 5 ) ;
시합 << '객체 c를 사용하는 번호: ' << 씨. getValue ( ) ;
시합 << ' \N 객체 c1을 사용하는 번호: ' << c1. getValue ( ) ;
반품 0 ;
}

처음에는 프로그램 입출력 스트림을 활성화하는 헤더 파일을 정의합니다. 그런 다음 'num' 변수와 MyClass() 함수 및 getVal() 함수의 멤버 함수를 선언하는 'MyClass' 클래스를 설정합니다. MyClass() 함수 내에서 'n' 매개변수를 '0' 값으로 설정합니다. 그런 다음 'n' 인수가 'num' 변수에 할당됩니다. 다음으로 'const' 키워드를 사용하여 getVal() 함수를 호출합니다. 이는 함수 호출 시 개체의 현재 상태를 수정할 수 없음을 나타냅니다. getVal() 함수는 'num' 멤버 변수를 반환합니다.







마지막으로 main() 함수에 접근합니다. 여기서는 MyClass() 함수의 'c' 및 'c1' 개체를 정의하고 해당 개체에 값을 전달합니다. 'c' 개체는 'const' 키워드로 설정되어 이 개체에 할당된 값을 수정할 수 없음을 나타냅니다.



개체에 의해 호출되는 const 멤버 함수의 출력은 다음과 같습니다. 이런 식으로 멤버 함수와 객체에 'const' 키워드를 사용할 수 있습니다.







예제 2: C++에서 클래스 외부의 Const 멤버 함수 프로그램

이제 const 멤버 함수가 클래스 정의 외부에서 정의되고 const 멤버 함수를 사용하여 전용 멤버 변수 값을 설정하고 검색하는 또 다른 구현이 있습니다.

#include
사용하여 네임스페이스 성병 ;

수업 NewClass {
정수 ;

공공의 :
무효의 세트_레코드 ( 정수 ) ;

정수 get_record ( ) const ;
} ;

무효의 NewClass :: 세트_레코드 ( 정수 엑스 ) { = 엑스 ; }
정수 NewClass :: get_record ( ) const { 반품 ; }

정수 기본 ( )
{
New클래스 c ;
씨. 세트_레코드 ( 10 ) ;
시합 << 씨. get_record ( ) ;

반품 0 ;
}

여기서는 먼저 비공개로 유지되는 'i' 변수를 초기화하는 'NewClass' 클래스를 설정합니다. 그 다음에는 set_record() 및 get_record() 멤버 함수가 정의된 공개 키워드가 있습니다. set_record() 멤버 함수는 'i' 변수의 값을 설정하는 데 사용되고 여기서 get_record() 함수는 'i' 변수의 값을 반환하는 데 사용됩니다. const 멤버 함수로 나타내는 get_record() 멤버 함수와 함께 'const' 키워드를 사용하며 객체 상태는 수정할 수 없습니다. 그 다음에는 'i' 변수 값을 설정하는 set_record() 함수 정의가 있습니다.



마찬가지로 'i' 변수 값을 검색하는 get_record() 함수 정의가 있습니다. 그런 다음 'NewClass' 클래스의 'c' 객체 선언이 있는 main() 함수를 설정합니다. 그런 다음 상수가 아닌 멤버 함수인 'set_record'를 호출하여 'z' 변수에 값을 할당합니다. 계속해서 get_record() const 멤버 함수를 호출하여 'i' 값을 인쇄합니다.

전용 멤버 변수의 값은 const 멤버 함수에 의해 호출되며 다음 프롬프트에 표시됩니다.

예제 3: 클래스 외부에서 독립 함수로 정의된 Const 멤버 함수의 프로그램

그러나 'const' 키워드가 있는 멤버 함수가 클래스 외부에서 독립형 함수로 호출되는 const 멤버 함수의 또 다른 경우를 구현합니다.

#include
사용하여 네임스페이스 성병 ;
수업 방정식 {
정수 n1,n2 ;
공공의 :
무효의 set_equation ( 정수 엑스, 정수 그리고 )
{
n1 = 엑스 ;
n2 = 그리고 ;
}
무효의 show_equation ( )
{
시합 << '방정식은 다음과 같습니다. ' << n1 << '+' << n2 << '비' << ;
}
친구 무효의 재미있다 ( const 방정식 ) ;
} ;
무효의 재미있다 ( const 방정식 obj )
{
시합 << '함수를 사용하는 방정식은 다음과 같습니다: ' << obj. n1 << '+' << obj. n2 << '비' << ;
}
정수 기본 ( )
{
방정식 obj ;
obj. set_equation ( 5 , 8 ) ;
obj. show_equation ( ) ;
재미있다 ( 객체 ) ;
}

여기서는 'Equation()' 클래스를 만든 다음 'n1' 및 'n2' 변수를 선언합니다. 여기서는 'n1' 및 'n2' 변수의 값을 설정하기 위해 set_Equation() 멤버 함수도 추가합니다. show_Equation() 함수는 이러한 변수를 사용하여 생성된 방정식을 표시합니다.

그 다음에는 'friend' 키워드를 사용하여 정의된 funIs() 함수 선언이 있습니다. 이 'friend' 키워드를 사용하면 'Equation' 클래스의 비공개 멤버에 액세스할 수 있습니다. 다음으로 클래스 외부에서 'funIs()' friend 함수를 호출하고 'Equation' 클래스의 'obj' 매개변수를 const로 입력합니다. 마지막으로 “Equation” 클래스의 객체를 선언하는 main() 함수가 있습니다. 그런 다음 set_Equation() 함수를 사용하여 'n1' 및 'n2' 변수의 값을 설정합니다. 'n1' 및 'n2' 변수는 show_Equation() 함수를 사용하여 해당 값을 표시하는 데 사용됩니다. 마지막으로 방정식을 표시하기 위해 “Equation” 클래스의 “funIs” friend 함수를 호출합니다.

방정식과 const friend 함수를 사용한 방정식이 프롬프트에 표시됩니다.

예제 4: C++에서 값을 업데이트하는 Const 멤버 함수 프로그램(최악의 경우)

이 프로그램은 'const 멤버 함수 내부'라는 변수의 값을 수정하려고 시도하는 const 멤버 함수의 최악의 시나리오를 보여줍니다.

#include
사용하여 네임스페이스 성병 ;

수업 데이터 {
정수 ~에 ;

공공의 :
무효의 세트값 ( 정수 ) { ~에 = ; }
정수 getValue ( ) const
{

++ ~에 ;
반품 ~에 ;
}

} ;

정수 기본 ( )
{
데이터 d ;
디. 세트값 ( 이십 ) ;
시합 << << 디. getValue ( ) ;

반품 0 ;
}

여기서는 먼저 “Data” 클래스를 구성하고 클래스 내에서 “v” 변수를 선언합니다. 그런 다음 'public' 키워드를 설정한 다음 클래스의 생성자를 나타내는 'setValue()'의 클래스 멤버 함수와 클래스의 getter 멤버 함수를 나타내는 getValue()를 선언합니다. setValue() 함수는 'i' 변수를 매개변수로 사용합니다. 이 'i' 변수는 'v' 멤버 변수에 할당됩니다.

그 다음에는 'v' 변수의 값을 검색하는 getValue() 함수 정의가 있습니다. getValue() 함수는 'const' 키워드로 선언되었으므로 'v' 변수의 값은 어떠한 경우에도 업데이트될 수 없음을 나타냅니다. 하지만 의도적으로 'v' 변수를 증가시켜 값을 변경하려고 합니다. 프로그램이 이 단계에 도달하면 오류가 발생합니다. 마지막으로 'Data' 클래스의 'd' 객체를 정의하고 이 'd' 객체에 대해 '20' 값을 설정하는 main() 함수 호출이 있습니다. 그런 다음 getValue() 함수를 호출하여 객체의 'd' 값을 가져옵니다.

프롬프트는 const 멤버 함수 객체의 값을 수정할 수 없기 때문에 '++v'에 대한 오류를 제공하는 이전 구현의 결과를 생성합니다.

결론

결론적으로, 프로그램 값이 실수로 변경되는 것을 방지하는 데 사용되는 C++의 const 함수에 대해 알아봅니다. C++의 const 멤버 함수는 호출되는 개체의 수정이 허용되지 않는 읽기 전용 함수입니다. 또한 C++에서 해당 기능을 보여주기 위해 const 함수의 다양한 시나리오를 구현했습니다.