블로그 이미지
공부할 때 정리 장소로 쓰거나 웹서핑할때 메모 할 때 쓰거나, 개인적인 생각을 기록하기 위해서 사용 되는 블로그 입니다.
최익필

Recent Comment

Recent Trackback

Category

Archive

  • 293,215total
  • 107today
  • 192yesterday
이유
1. 의미적으로 상수로 표현하기보단 실질적으로 상수로 표현하는 const가 더 안정적이기 때문이다.
(함수 내부에서 값을 건드리지 않는다는 의미만 가지고 코딩할게 아니라 진짜로 표현하는게 더 좋기 때문이다)

주의점
1. 함수의 반환값 함수의 매개변수, 함수의 정의 구역을 모두 const로 할수 있는지 생각해 보아야 한다.
2. 상수객체와 비상수객체는 함수의 오버로딩 대상에 포함된다.
- 즉 상수객체만 받거나 비상수객체만 받거나 둘의 차이를 인정한다는 것이다.
3. 상수 멤버 함수의 반환값이 참조자라면, 상수형 참조자를 반환할수 있게 만들어야 한다.
- 왜냐하면 기본제공 타입을 반환하는 함수의 반환값 수정은 공통적으로 안되는 규칙을 따르기 위함이다.

참조
const에 "상수형" 이라는 말을 붙여버려서 그 오른편에 무엇이 오는지만 알면 무엇이 상수인지 알수 있다.

세부 내용

more..


개인적인 생각
상수 멤버 함수를 완벽(?)하게 지원하지 않는 한, 의미적으로 상수성을 생각해 보는게 더 좋을것이라고 생각된다.(스트레스를 줄여 주니까..)

추가적으로
1. 코드 중복을 막는 방법은 중복될 함수를 호출하여, 다른 함수를 구현하는 것이다.
예)상수 멤버 함수를 호출하여 비상수 멤버 함수를 구현한다.

이것만은 잊지 말자!
1. const를 붙일 건덕지가 있으면 붙여야 한다.
2. 개념적인 상수성을 사용해서 프로그래밍 해야 한다.(개인적인 생각 참조)
3. 상수 멤버 함수와 비상수 멤버 함수가 동일하다면 상수멤버를 비상수 멤버에서 호출한다.(추가적으로 참조)


관련링크
http://ikpil.tistory.com/312
http://chunsinn.egloos.com/1071274
posted by 농사를 짓는 게임 프로그래머 최익필

Trackback http://ikpil.com/trackback/402 관련글 쓰기

  1. 항목 3. 낌새만 보이면 const를 들이대 보자!  삭제

    2008/06/10 22:19 | Tracked from +nBloger.Net

    const 사용처 클래스 바깥에서는 전역 혹은 네임스페이스 유효범위의 상수를 선언(정의)하는 데 쓸 수 있다. 파일, 함수, 블록 유효범위에서 static으로 선언한 객체에도 const를 붙일 수 있다. 클래스 내부의 경우 정적 멤버 및 비정적 데이터 멤버 모두를 상수로 선언할 수 있다. char greeting[] = "Hello"; char *p = greeting; // 비상수 포인터, 비상수 데이터 const char *p = greeting..

댓글을 달아 주세요