TEL. 053-453-6585
OPEN&CLOSE.  9:00~19:00
CLODED SHOP.  MONDAY
 
 
 

c++ this 예제

2019年8月2日

이 포인터는 클래스의 멤버 함수 내에서만 액세스할 수 있는 포인터이며 이 멤버 함수를 호출한 개체를 가리킵니다. 예를 들어 멤버가 가변성으로 선언하는 것이 더 나은 기술이라는 것을 이해해 봅시다. 멤버 함수가 휘발성 한정자로 선언된 경우 클래스 A에 대한 해당 멤버 함수에 대한 이 포인터의 형식은 휘발성 A* const입니다. 예를 들어 컴파일러는 다음을 허용하지 않습니다: 멤버 함수가 const 한정자로 선언된 경우 클래스 A에 대한 해당 멤버 함수에 대한 이 포인터의 형식은 const A* const입니다. C++를 기울이기 시작했을 때, 가장 큰 질문 중 하나는 이게 뭐죠? 이 포인터는 클래스 인스턴스의 주소를 저장하여 클래스의 멤버 함수에 대한 멤버의 포인터 액세스를 활성화합니다. 새로운 프로그래머에게 는 명확하지 않은 비밀이 있습니다 -이 포인터는 질문의 열쇠를 가지고 있습니다 : C ++는 호출 된 객체를 어떻게 알 수 있습니까? 대답은 C ++가이 라는 숨겨진 포인터를 가지고 있다는 것입니다! 여기서 우리는 두 개의 데이터 멤버 num 및 ch가 있음을 볼 수 있습니다. 멤버 함수 setMyValues() 데이터 멤버 이름과 이름이 같은 두 개의 로컬 변수가 있습니다. 이 경우 데이터 멤버에 로컬 변수 값을 할당하려는 경우 컴파일러에서 이 포인터를 사용하지 않는 한 개체의 데이터 멤버를 참조하고 있다는 것을 알지 못하면 이 포인터를 사용하지 않으면 이 포인터를 사용하지 않으면 수행할 수 없습니다. 이 포인터를 사용해야 하는 예제 중 하나입니다. 클래스 A의 objA라는 개체를 만들고 클래스 A에 비정적 멤버 함수 void f()가 있다고 가정합니다. 함수 objA.f()를 호출하는 경우 f() 본문에 이 키워드는 objA의 주소를 저장합니다. 클래스 A의 멤버 함수에 대한 이 포인터의 형식은 A* const입니다.

구체적인 예를 살펴보겠습니다. 그것은 Amazon.com의 장바구니와 체크 아웃 같은 것에 대한 간단한 계산기 코드입니다. 이 키워드가 허용되는 컨텍스트(비정적 멤버 함수 본문, 멤버 초기화자 목록, 기본 멤버 초기화자)에서 비정적 클래스 멤버를 사용하면 암시적 this->가 이름 앞에 자동으로 추가되어 멤버 액세스 식(멤버가 가상 멤버 함수인 경우 가상 함수 호출이 발생).

コメント