[c++ ] Scope 연산자

숭글·2023년 1월 14일
0

다른 Scope에 같은 이름을 사용하는 변수/함수가 있을 경우
현재 같은 scope에 있는 변수/함수를 우선적으로 참조하고 호출하게 된다.

때에 따라서 scope 내에서 (전역 변수와)같은 이름의 지역 변수를 사용하다가도 전역 변수를 사용해야하는 경우가 생기는 데, 그 때 Scope 연산자를 사용하여 전역 변수를 참조할 수 있다.

  1. 지역 변수명과 전역 변수명이 같은 경우
  2. 함수명과 클래스의 멤버 함수명이 같은 경우

위 같은 경우에 Scope연산자를 사용하여 외부의(전역의) 변수/함수를 참조/호출할 수 있다.

Example

#include <iostream>
#include <cstdlib>

int min(int a, int b){
	std::cout << "my min" << std::endl;
	return (a > b ? b : a);
}

class Data{
	public : 
		int min(int a, int b){
			std::cout << "Data's min" << std::endl;
			return (a > b ? b : a);
		}

		int getRandomMin(){
			int a = rand();
			int b = rand();

			std::cout << "a : " << a << " b : " << b << std::endl;
			return (min(a, b));
		}

		int getRandomMinUsingOtherMin(){
			int a = rand();
			int b = rand();

			std::cout << "a : " << a << " b : " << b << std::endl;
			return (::min(a, b));
		}
};

int main(){
	Data dt;

	std::cout << dt.getRandomMin() << std::endl;
	std::cout << dt.getRandomMinUsingOtherMin() << std::endl;

	return (0);
}

output >

Data's min
16807
a : 1622650073 b : 984943658
my min
984943658

네이버 블로그::프로그래머 김성엽 글 참조

profile
Hi!😁 I'm Soongle. Welcome to my Velog!!!

0개의 댓글