여기에서 몇 가지 C++ 예제를 보고 어떤 유형의 출력이 생성되는지 알아보겠습니다. 그러면 C++에서 범위 확인 연산자와 'this' 포인터의 목적과 기능을 이해할 수 있습니다.
일부 코드에 'x'라는 멤버가 있고 동일한 이름 'x'를 가진 인수를 사용하는 다른 함수를 사용하려는 경우 해당 함수에서 'x'를 사용하면 멤버 변수가 숨겨지고 지역 변수가 사용됩니다. 하나의 코드로 확인해보자.
예시
#include <iostream> using namespace std; class MyClass { private: int x; public: MyClass(int y) { x = y; } void myFunction(int x) { cout << "Value of x is: " << x; } }; main() { MyClass ob1(10); ob1.myFunction(40); }
출력
Value of x is: 40
클래스의 x 멤버에 액세스하려면 'this' 포인터를 사용해야 합니다. 'this'는 현재 객체를 가리키는 특별한 유형의 포인터입니다. 'this' 포인터가 이 작업을 수행하는 데 어떻게 도움이 되는지 봅시다.
예시
#include <iostream> using namespace std; class MyClass { private: int x; public: MyClass(int y) { x = y; } void myFunction(int x) { cout << "Value of x is: " << this->x; } }; main() { MyClass ob1(10); ob1.myFunction(40); }
출력
Value of x is: 10
C++에는 범위 확인 연산자라는 또 다른 연산자가 있습니다. 해당 연산자는 상위 클래스의 멤버 또는 일부 정적 멤버에 액세스하는 데 사용됩니다. 이를 위해 범위 확인 연산자를 사용하면 작동하지 않습니다. 마찬가지로 정적 멤버에 대해 'this' 포인터를 사용하면 몇 가지 문제가 발생합니다.
예시
#include <iostream> using namespace std; class MyClass { static int x; public: void myFunction(int x) { cout << "Value of x is: " << MyClass::x; } }; int MyClass::x = 50; main() { MyClass ob1; ob1.myFunction(40); }
출력
Value of x is: 50