게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
제가 사용하는 const, double poiner 입니다.
게시물ID : programmer_5218짧은주소 복사하기
작성자 : 황금비
추천 : 1
조회수 : 432회
댓글수 : 1개
등록시간 : 2014/08/30 02:22:41

아래 포인터 질문에 대해서 포인터는 다른 분들이 다들 잘 설명 하셔서 그냥 제가 사용하는 예 함 올려 보겠습니다.

먼저 const 키워드 입니다.

class User
{
protected:
int val[4];
public:
User()  { val[0] = 100; }
const int* const Val() const { return val; }
};

int main()
{
User cc;
const int* const val = (int*)cc.Val(); // 이렇게 
val[0] = 200; // 에러 납니다.
val = NULL;                                       // 에러 납니다.
return 0;
}

반환 val은 읽기 만 가능합니다.

그런데 여기서  int* val = (int*)cc.Val();  이렇게 하면 읽기/쓰기 가능합니다. 

2 번 째 double pointer 입니다. 참 많은 예가 있는데요, 먼저 객체의 생성입니다.

int CreateInstance( User** pOut....)
{
if(어떤 이유에서 객체 생성이 false가 되었을 때)
     *pOut = NULL;
     return -1;

*pOut = new User;
return 0;

User* puser;
CreateInstance(&puser);...
이런 경우 이중 포인터가 필요하죠. 객체 생성을 실패하면 puser는 NULL 로 초기화 되겠지요.



이중 포인터가 많이 사용되는 곳 => 정렬입니다. 이 부분은 공부하시라고 남겨 놓겠습니다.








전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호