게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C++ 포인터와 구조체 질문하겠습니다.
게시물ID : programmer_7820짧은주소 복사하기
작성자 : 차칸놈
추천 : 0/4
조회수 : 446회
댓글수 : 4개
등록시간 : 2015/01/25 01:40:50
옵션
  • 본인삭제금지
#include <iostream>
using namespace std;
typedef struct Data{
 int data;
 void(*ShowData)(Data*);
 void(*Add)(Data*, int);

} D;
void ShowData(D* THIS){ cout << "Data : " << THIS->data << endl; }
void Add(D* THIS, int num){ THIS->data += num; }
int main(){
 D obj1 = { 15, ShowData, Add };
 D obj2 = { 7, ShowData, Add };
 obj1.Add(&obj1, 17);
 obj2.Add(&obj2, 9);
 obj1.ShowData(&obj1);
 obj2.ShowData(&obj2);
 return 0;
}
 
 
구조체를 이용해서 클래스를 흉내 낸 예제라고 책에는 적혀있는데 강조된 부분들이 뭘 뜻하는지는 모르겠습니다..
void *ShowData와 void *Add는 포인터가 포함된 함수정도로 이해할 수 있겠는데 뒤의 Data*와 (Data*, int) 이건 무슨 소린지..
밑의 (D* THIS)와 (D* THIS, int num)도 똑같이 모르겠습니다. 그래도 D는 struct Data라는 건 이해했습니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호