본문 바로가기

const4

const에 대해서 const에 대해서 다시 한번 복습해 보고, C++에서의 멤버 함수, 객체 그리고 함수 오버로딩에 대해서 집어 보자. const의 기본 개념부터 다시 한번 집어 보자. #include void main() { // 포인터가 아니라면 n1, n2는 모두 같은 의미라고 봐도 무방. const int n1 = 10; int const n2 = 10; //n1 = 10; 상수화 되어있어서 불가능 //n2 = 10; 마찬가지로 불가능 }​ const int* pn int n = 10; // const int*를 하면 pn이 가르키는 대상을 보호한다. const int* pn; // pn은 누구든 가르킬 수 있으나 pn = &n; //*pn = 20; pn이 가르키고 있는 것은 const 보호를 받는다.(컴파일에러.. 2010. 3. 23.
정말 사소한 팁. int형 레퍼런스를 리턴하는 함수와 쓰일것 같지 않은 캐스팅 연산자, 하지만 알고 있으면 언젠간 쓸일이 있겠지. 있겠지...? 있나.. 있을까--a;; #include int n1; int& fun()// int& 리턴하는 fun함수 { return n1; } void main() { int val; int *pval = &val; *pval = (int)pval; fun() = 10; std::cout 2010. 3. 19.
const 상수화 const에 대한 애매모호한 상황에 대한 설명 소스 코드 참조 #include void main() { int tmp = 10; const int n1 = 10;// n1은 상수화 const int* n2 = &tmp;// n2가 가르키는 값을 상수화(tmp = 10은 가능) int* const n3 = &tmp;// n3는 tmp가 아닌 다른 값을 가르키지 못한다. } 2010. 3. 17.
문자열과 배열 사실 이 부분은 크게 중요하진 않지만 언제 어떻게 쓰일지 모르는게 배열과 문자열인것 같다. 특별한 건 없고 포인터 변수를 사용하여 문자열을 저장하는 것과, strlen을 사용하지 않고, 배열의 사이즈를 파악, 생성 하는 것과 간단한 출력 방법을 코딩하였다. #include void main() { char t1[] = "Test1"; char t2[] = "Test2"; char t3[] = "test3"; char *str[3] = { t1, t2, t3 }; char t4[] = {"Hello World!"}; const int size = sizeof(t4); char t5[size]; printf( "%s\n", *str ); printf( "%s\n", (*str)+2 ); printf( "%s.. 2010. 3. 8.