Language&Framework&Etc/C++33 C언어 기반의 C++ 2(02-3) 참조자(Reference)의 이해 참조자(Reference)의 이해 변수 할당된 메모리에 붙여진 이름 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다 "할당된 하나의 메모리 공간에 둘 이상의 이름을 부여할 수는 없을까?" 참조자의 이해를 위해 변수 할당 int num=2020 이 상황에서 다음의 문장을 실행하면, num1이라는 이름이 붙어있는 메모리 공간에는 num2라는 이름이 하나 더 붙게 된다. int &num2 = num1; C에서 배웠듯이 & 연산자는 변수의 주소값을 반환하는 연산자다. 그러나 여기서 & 연산자는 전혀 다른 의미로 사용이 된다. 이미 선언된 변수의 앞에 이 연산자가 오면 주소 값을 반환을 명령하는 뜻이 되지만, 새로 선언되는 변수의 이름 앞에 등장하면, 이는 참조자의 선언을 뜻하는 게 된다. int *ptr .. 2020. 12. 21. C언어 기반의 C++ 2(02-2) 새로운 자료형 bool bool형은 C언어에는 존재하지 않고, C++에만 존재하는 자료형. 그러나 C의 최근 표준에서는 bool을 기본자료형에 추가 bool형에 대해서 공부 우선 true와 false를 이해해야 함 '참'을 의미하는 true와 '거짓'을 의미하는 false C와 C++ 모두, 정수 0은 '거짓'을 의미하는 숫자로, 0이 아닌 모든 정수는 '참'을 의미하는 숫자로 정의 따라서 참과 거짓의 표현을 위해서 다음과 같이 상수를 정의하는 것이 보통 #define TRUE 1 #define FALSE 1 그러나 C++에서는 참과 거짓을 위한 키워드 true와 false를 정의하고 있기 때문에, 굳이 매크로 상수를 이용해서 참과 거짓을 표현할 필요가 없다. 예제 #include using namespace std; int .. 2020. 12. 20. C언어 기반의 C++ 2(02-1) 시작에 앞서 C언어의 복습을 유도하는 확인학습 [키워드 const의 의미] 1) const int num=10; → 변수 num을 상수화 2) const int* ptr1 = &val1 →포인터 ptr1을 이용해서 val1의 값을 변경할 수 없음 3) int* const ptr2 = &val2; → 포인터 ptr2가 상수화 됨 4) const int* const ptr3 = &val3; → 포인터 ptr3가 상수화 되었으며, ptr3을 이용해서 val3의 값을 변경할 수 없음 [실행중인 프로그램의 메모리 공간] 1) 데이터 : 전역변수가 저장되는 영역 2) 스택 : 지역변수 및 매개변수가 저장되는 영역 3) 힙 : malloc 함수호출에 의해 프로그램이 실행되는 과정에서 동적으로 할당이 이뤄지는 영역 4) mallo.. 2020. 12. 20. C언어 기반의 C++(01-5) 이름공간(namespace)에 대한 소개 이름공간의 등장배경 프로그램이 대형화되어 가면서 이름의 충돌문제 발생 프로그램 개발을 위해 여러 개의 회사가 참여 이들은 프로젝트의 규모가 큰 관계로 일을 구분하여 독립적으로 진행 구분해야 할 부분을 적절히 나눔 6개월 후 모여 구현한 모듈을 하나로 묶고 부족한 부분을 완성할 때가 됨 그러나 문제가 생김 몇몇 회사에서 동일한 이름의 함수가 있음 충돌이 생김 C++에서는 위 문제를 해결하기 위해서 '이름공간(namespace)'라는 문법을 정의해서 이러한 문제에 대한 근본적인 해결책을 제시하고 있다. 이름공간의 기본원리 아래는 이름 충돌을 일으킴 #include void simplefunc(void) { std::cout 2020. 12. 20. 이전 1 ··· 3 4 5 6 7 8 9 다음