함수의 지역변수는 레퍼런스로 리턴하지 마라. 이유는?
2008.05.01 by nowpassion
const int&의 실용적 의미
int* a와 a*와 차이
선행선언(Foward Declaration)
2008.04.30 by nowpassion
- 항상 레퍼런스는 무언가의 별칭이 되어야함 - 함수가 끝남과 동시에 지역변수는 메모리에서 사라짐 - 그러므로 지역변수의 레퍼런스를 리턴하면 레퍼런스가 가리킬 변수가 없어져 버린다. /*4.cpp*/ #include using std::cout; using std::endl; //이경우는 문제가 없다. //외부의 메모리를 포인팅하고 있으므로 리턴해도 무리가 없다. int& Plus(int &num) { ++num; return num; } // 이경우에는 문제가 발생한다. // 함수 종료와 동시에 참조할 변수가 사라져 버린다. (dangling reference) int& Plus2() { int num = 2; int& numRef = num; ++numRef; return numRef; } int m..
C++/기본 2008. 5. 1. 11:35
- 참조는 항상 초기화해야 한다. - 값을 전달 -> 복사본을 전달하게 됨 - 변경하지 말아야 할 클래스/함수 외부값을 함부로 변경하지 못하게 하므로써 프로그램의 정확성/ 보안이 늘어나는 효과이 있다. /*4.cpp*/ #include using std::cout; using std::endl; void PlusConst(const int &num){ //컴파일 오류 : const이므로 함수 내부에서 변경하지 못하게 된다. ++num; } void Plus(int &num){ ++num; } int main() { int x =4; cout
C++/기본 2008. 5. 1. 11:33
- int* a(포인터 변수 선언), *a(실제 포인팅되어 있는 변수내용), a(주소) - 예제 /* 3.cpp */ #include #include using std::cout; using std::endl; int main() { int* a; int b=3; a = &b; // a는 주소값 (&b와 같다.) cout
C++/기본 2008. 5. 1. 11:29
http://en.wikipedia.org/wiki/Forward_declaration
C++/기본 2008. 4. 30. 17:23
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.