반응형
이번 글을 통해 배워갈 내용
- -> 과 . 의 차이에 대해서 배워보겠습니다.
요약
. 은 클래스의 멤버를 직접 접근합니다.
->은 포인터를 통해 멤버를 접근합니다.
다르게 표현하면
a -> b 는 (*a).b와 동일합니다.
실습
(C에서는 접근제한자를 지우고 Class 대신 Struct를 써주시면 됩니다)
여기 존슨이 있습니다
존슨에는 이름과 나이가 속성변수로 들어가 있습니다.
class Johnson { // 클래스
public: // 접근제한자
int age; // 속성 변수
string name;// 속성 변수
};
먼저 .을 이용해 존슨에게 나이와 이름을 넣어주고 출력해보겠습니다.
#include <iostream>
using namespace std;
class Johnson { // 클래스
public: // 접근제한자
int age; // 속성 변수
string name;// 속성 변수
};
int main()
{
Johnson js;
js.age = 10;
js.name = "Johnson";
cout<<js.age;
cout<<js.name;
return 0;
}
결과
10Johnson
그다음 ->을 이용해 존슨에게 나이와 이름을 넣어주고 출력해보겠습니다.
#include <iostream>
using namespace std;
class Johnson { // 클래스
public: // 접근제한자
int age; // 속성 변수
string name;// 속성 변수
};
int main()
{
Johnson* js = new Johnson;
js->age = 10;
js->name = "Johnson";
cout<<js->age;
cout<<js->name;
return 0;
}
결과
10Johnson
세줄 요약(이것만 기억하시면 됩니다)
. 은 클래스의 멤버를 직접 접근합니다.
->은 포인터를 통해 멤버를 접근합니다.
x->y 은 (*x).y
오늘도 즐거운 코딩하시길 바랍니다 ~ :)
참조 및 인용
Difference between "->" and "." in C - Stack Overflow
https://www.geeksforgeeks.org/arrow-operator-in-c-c-with-examples/
반응형
'C++ > C++ 기타' 카테고리의 다른 글
C++ 실행중에 이중배열 크기를 정의 하고 사용하는 한가지 방법 (1) | 2021.07.02 |
---|---|
C++ 동적으로 배열 크기를 늘리는 세가지 방법 (1) | 2021.06.21 |
배열을 함수에 인자로 보낼때 알아야 하는 한가지 (1) | 2021.06.15 |
과학적으로 배우는 pass by value, pass by reference, pass by address (1) | 2021.06.15 |
Visual Studio Install 비쥬얼 스튜디오 설치하는 법 (1) | 2021.06.04 |