이슈 자유·수다 게시판 글쓰기 게시판 즐겨찾기

컴공여러분 도와주세요..

_cresc

14.01.30 13:13:16추천 1조회 3,479

139105484759398.jpg


 C++를 독학으로 공부하는 일반인입니다. 취미로 C++을 공부하고 있는데 전공이 다르다보니 막히는게 많습니다.

여쭤볼건 C++에서 객체 포인터 배열에 대한 것인데요

객체포인터 배열선언방식이 아래처럼

ClassName *객체이름[1000] 

이렇다치면

클래스내부 매쏘드(객체함수?)로 접근을 할 때 왜 '->' 연산자로 접근을 하나요?

전 그냥 객체이름[1].Method 이렇게 접근하면 될줄 알았는데..

'->' 연산자로 접근하는 때는 언제이고 무슨의미인지좀 알려주세요!


zmsmkf 14.01.30 14:32:25

포인터 변수 class *ptr일때

(*ptr).method 랑 ptr->method랑 같은 거라 보심될듯요
포인터로 멤버 접근할때 쉽게할라고 만들어논거죠

神風朴氏 14.01.30 15:57:52

알고 계신대로 객체형 변수의 내부 변수나 함수 참조는 . 즉 dot로 이루어지고,

객체형의 포인터형 변수는 -> 로 참조를 합니다.

ClassName 객체이름[1000]; 으로 선언을 하셨다면

객체이름[i].Method 로 접근을 할 수 있겠습니다.

베라모두 14.01.30 20:49:33

c에서 구조체를 다룰 때, 배우는 것인데. c를 안 배우셨거나 필요한 것만 배우신 것 같습니다.
좀 더 세세히 설명 하자면 *변수명을 쓰면 해당 변수가 갖고 있는 주소 값을 참조한다는 것을 아실 겁니다.
그냥 변수명은 변수 자신을 뜻 한다는 차이가 있죠. 필자께서 쓰신 것은 포인터로 선언하고 그냥 변수명으로
사용한다는 오류가 있습니다. 고치자면 *변수명.메소드 괄호가 안쳐지는데 위에분 처럼 써주셔야함;
근데 괄호치고 포인터 쓰고 귀찬으니 기술법을 고려해서 ->를 만든 것입니다.
사진첨부
목록 윗 글 아랫 글
*/?>