::은 C++에서 무엇을 합니까?

Eun C Eseo Mueos Eul Habnikka



C++는 개발자에게 다양한 기능을 제공하는 다목적 프로그래밍 언어입니다. C++에서 가장 일반적으로 사용되는 기능 중 하나는 범위 확인 연산자 , 라고도 함 이중 콜론(::) . 언어의 중요한 부분임에도 불구하고, 이중 결장 연산자는 많은 개발자, 특히 처음 접하는 개발자에게 혼란을 줄 수 있습니다.

이 가이드에서는 이중 콜론(::) 연산자 C++에서 그리고 다양한 시나리오에서 작동하는 방식.

::은 C++에서 무엇을 합니까?

C++에서는 범위 해상도 운영자 (::) 다양한 범위 수준에 있는 변수 이름을 검색하는 데 사용됩니다. 프로그래밍의 범위는 변수와 함수에 액세스할 수 있는 컨텍스트를 나타냅니다.







C++의 다양한 경우에 :: 사용

C++에서는 범위 확인 연산자(::) 사용되는 상황에 따라 다양한 용도로 사용됩니다. 다음은 이 연산자의 몇 가지 주목할만한 용도입니다.



1: 다른 네임스페이스의 변수 또는 함수에 액세스

네임스페이스 이름 충돌을 피하기 위해 C++에서 관련 함수, 클래스 및 변수를 그룹화하는 데 사용됩니다. 변수나 함수를 정의할 때 네임스페이스 , 변수 또는 함수의 이름은 해당 내에서만 볼 수 있습니다. 네임스페이스 .



C++에서는 다음을 사용할 수 있습니다. 범위 확인 연산자(::) 와 함께 네임스페이스 다른 네임스페이스에 정의된 변수 또는 함수에 액세스하기 위한 이름 및 변수 또는 함수 이름. 이를 통해 변수 또는 함수에 액세스할 수 있습니다. 네임스페이스 그것이 만들어진 것 이외의 것.





위의 경우를 이해하려면 다음 코드를 예로 들어 보십시오.

#include

네임스페이스 표준 사용 ;

네임스페이스 수학 {

const 더블 파이 = 3.14159 ;

더블 정사각형 ( 더블 엑스 ) {

반품 엑스 * 엑스 ;

}

}

정수 기본 ( ) {

쿠우트 << 'PI 값은 다음과 같습니다. ' << 수학 :: 파이 << ;

쿠우트 << '5의 제곱은:' << 수학 :: 정사각형 ( 5 ) << ;

반품 0 ;

}

위의 코드는 다음을 사용합니다. 수학 네임스페이스 에 액세스하려면 '파이' 일정하고 '정사각형' 기능을 사용하여 범위 확인 연산자 '::' . 그런 다음 값을 콘솔에 인쇄합니다.



산출

2: 프로그램에서 전역변수 접근

프로그램에 동일한 이름의 지역 변수와 전역 변수가 있으면 지역 변수가 전역 변수를 숨길 수 있습니다. 이러한 상황에서 다음을 사용할 수 있습니다. 범위 확인 연산자(::) 전역 변수에 액세스하기 위해. 이 연산자를 사용하면 범위에 따라 전역 변수를 명시적으로 참조할 수 있습니다.

예를 들어, 아래 주어진 코드에서 전역 변수를 참조했습니다. 'ㅏ '를 통해 범위 결정 연산자(::) , 동일한 이름을 가진 지역 변수가 정의된 함수 내부에서:

#include

네임스페이스 표준 사용 ;

정수 = 열 다섯 ;

정수 기본 ( )

{

정수 = 35 ;

쿠우트 << '전역 변수 a의 값은 ' << :: << ;

쿠우트 << '지역 변수 a의 값은 ' << << ;

반품 0 ;

}

위의 코드에서 메인 함수 외부에 있는 변수 a는 글로벌 변수 메인 함수 내의 변수 a는 지역 변수 전역 변수와 같은 이름으로. cout 문에서 범위 결정 연산자를 사용하여 전역 변수를 인쇄했습니다. .

산출

3: 클래스 외부에서 함수 정의

C++에서는 클래스 정의 외부에서 클래스 함수를 정의할 수 있으며 다음을 사용하여 수행할 수 있습니다. 범위 확인 연산자(::) 함수가 속한 클래스를 지정합니다. 이는 함수가 클래스 범위 외부에서 정의되기 때문에 필요합니다.

다음은 이러한 사용을 보여주는 예제 코드입니다. 범위 확인 연산자 :

#include

네임스페이스 표준 사용 ;



클래스 마이클래스 {

공공의 :

무효의 내 기능 ( ) ;

} ;

무효의 내 수업 :: 내 기능 ( ) {

쿠우트 << 'myfunction()이 호출되었습니다!' ;

}

정수 기본 ( )

{

myClass 클래스 객체 ;

classObj.classObj. 내 기능 ( ) ;

반품 0 ;

}

위의 코드에서 멤버 함수는 myfunction() 를 사용하여 클래스 외부에서 정의됩니다. 범위 확인 연산자 :: 그것을 지정하기 위해 myfunction() myClass 클래스에 속합니다.

산출

4: 클래스의 정적 멤버에 액세스

C++에서 정적 멤버가 있고 같은 이름의 지역 변수가 클래스 내에 있으면 범위 확인 연산자(::) 클래스의 정적 멤버에 액세스하는 데 사용할 수 있습니다. 이를 통해 프로그램은 로컬 변수와 정적 멤버를 구별할 수 있습니다.

다음은 사용과 관련된 예제 코드입니다. 범위 확인 연산자 그러한 경우:

#include

네임스페이스 표준 사용 ;

클래스 마이클래스 {

공공의 :

공전 정수 myStatVar ;

} ;

정수 내 수업 :: myStatVar = 5 ;

정수 기본 ( ) {

정수 myStatVar = 10 ;

쿠우트 << '로컬 변수 myStatVar: ' << myStatVar << ;

쿠우트 << '클래스 변수 myStatVar: ' << 내 수업 :: myStatVar << ;

반품 0 ;

}

위의 프로그램은 먼저 클래스를 정의합니다. 내 수업 정적 멤버 변수로 myStatVar . 그런 다음 프로그램의 기본 기능 내에서 동일한 이름을 가진 지역 변수를 정의합니다. 클래스 변수에 액세스하려면 범위 확인 연산자(::) 클래스 이름과 함께 사용 내 수업 . 프로그램은 두 변수의 값을 콘솔에 출력합니다.

산출

5: 다중 상속과 함께 사용

그만큼 범위 확인 연산자(::) 또한 C++ 클래스가 이름이 같은 멤버 변수나 함수가 있는 여러 부모 클래스에서 파생될 때 사용할 멤버 버전을 나타내는 데 사용됩니다. 우리는 다음을 사용하여 동일한 멤버의 다양한 버전을 구별할 수 있습니다. 범위 확인 연산자 부모 클래스 이름과 멤버 이름이 뒤따릅니다.

#include

네임스페이스 표준 사용 ;

클래스 부모 1 {

공공의 :

무효의 인쇄 ( ) {

쿠우트 << '이것은 Parent1 클래스 인쇄 기능입니다.' << ;

}

} ;

클래스 부모 2 {
공공의 :
무효의 인쇄 ( ) {
쿠우트 << '이것은 Parent2 클래스 인쇄 기능입니다.' << ;
}
} ;
클래스 마이클래스 : 공개 상위 1 , 공개 부모 2 {
사적인 :
정수 하나에 ;

공공의 :
내 수업 ( 정수 N ) {
하나에 = N ;
}
무효의 인쇄 ( ) {
부모1 :: 인쇄 ( ) ; // Parent1의 인쇄 함수 호출
부모2 :: 인쇄 ( ) ; // Parent2의 인쇄 함수 호출
쿠우트 << '숫자의 값은 다음과 같습니다: ' << 하나에 << ; // num의 값을 출력
}
} ;
정수 기본 ( ) {
myClass 객체 ( 42 ) ; // num이 42로 초기화된 MyClass 객체 생성
객체 인쇄 ( ) ; // 객체의 print() 함수 호출
반품 0 ;
}

위의 프로그램은 범위 확인 연산자(::) 의 인쇄 기능을 구별하기 위해 부모1 그리고 부모2 두 클래스가 모두 상속되는 경우 내 수업. 로 함수를 호출하여 부모 클래스 함수 이름 앞에 이름이 있으면 사용할 함수 버전을 지정할 수 있습니다.

산출

결론

그만큼 범위 확인 연산자(::) 서로 다른 범위 수준에서 변수 이름에 액세스하는 데 사용되는 C++의 중요한 구성 요소입니다. 연산자는 다른 네임스페이스의 변수 또는 함수 액세스, 전역 변수 액세스, 클래스 외부 함수 정의, 클래스의 정적 멤버 액세스, 다중 상속 사용 등 다양한 용도로 사용됩니다. 초보 개발자에게는 혼란스러울 수 있지만 범위 확인 연산자(::) 좋은 프로그래밍 연습에 필수적입니다.