[C++](41)
-
8. [C++] 참조자(Reference)의 이해
"참조자"라는 것은 성격상 "포인터"와 비유되기 쉽다. 🍃 참조자의 이해 변수는 할당된 메모리 공간에 붙여진 이름이다. 그 이름을 통해서 메모리 공간에 접근이 가능하다. 그러면 할당된 하나의 메모리 공간에 둘 이상의 이름을 부여할 순 없을까? int num1 = 2010; 위 변수 선언으로 인해 2010으로 초기화된 메모리 공간에 num1이라는 이름이 붙게 된다. int &num2 = num1; 이 코드를 실행하면, num1이라는 이름이 붙어있는 메모리 공간에 num2라는 이름이 하나 더 붙게된다. &연산자는 변수의 주소 값을 반환하는 연산자이기 때문에 헷갈릴 수 있다. 이미 선언된 변수 앞에 & 연산자가 오면 주소 값의 반환을 명령하는 뜻이 되지만, 새로 선언되는 변수의 이름 앞에 등장하면, 이는 참조..
2024.04.11 -
7. [C++] 새로운 자료형 bool
🍃 C언어와 C++에서의 bool형 bool형은 C언어에는 존재하지 않고, C++에서만 존재하는 자료형이었다. 그러나 C의 최근 표준에서는 bool을 기본자료형에 추가하였다. 하지만 상당수의 C 컴파일러가 아직 bool을 지원하지 않는다. 🍃 C참을 의미하는 true와 '거짓'을 의미하는 false 정수 0은 '거짓'을 의미하는 숫자로, 0이 아닌 모든 정수는 '참'을 의미하는 숫자로 정의하고 있다. 따라서 참과 거짓의 표현을 위해 보통 다음과 같이 상수를 정의하는 것이 보통이다. #define TRUE1 #define FALSE0 이러한 참과 거짓의 표현방법은 C++에서도 여전히 사용된다. 그러나 C++에서는 참과 거짓의 표현을 위한 키워드 true와 false를 정의하고 있기에 굳이 매크로 상수를 이..
2024.04.11 -
6. const, 메모리 공간, Call-by-value & Call-by-reference
🍃 C언어의 복습을 유도하는 확인학습 문제 [문제 1] 키워드 const의 의미 키워드 const는 어떠한 의미를 갖는가? 다음 문장들을 대상으로 이를 설명해보자 - const int num = 10; - const int * ptr1 = &val1; - int * const ptr2 = &val2; - const int * const ptr3 = &val3 const int num = 10; ▶ 변수 num을 상수화! const int * ptr1 = &val1; ▶ 포인터 ptr1을 이용해서 val1의 값을 변경할 수 없음 int * const ptr2 = &val2; ▶ 포인터 ptr2가 상수화됨 const int * const ptr3 = &val3; ▶ 포인터 ptr3가 상수화 되었으며, ptr..
2024.04.11 -
01-06 은행계좌프로그램 실습 1단계
프로그램 설명 우리가 구현하고자 하는것은 "은행계좌 관리 프로그램"이다. 1단계에서는 C스타일로 구현하는 것을 목표로 한다. 구현할 기능은 다음과 같다. 기능 1. 계좌개설 기능 2. 입 금 기능 3. 출 금 기능 4. 전체고객 잔액조회 그리고 프로그램의 간결성을 위해 몇 가지 가정을 하겠다. 통장의 계좌번호는 중복되지 아니한다.(중복검사 하지 않겠다는 뜻) 입금 및 출금액은 무조건 0보다 크다.(입금,출금 오류검사 않겠다는 뜻) 고객의 계좌정보는 계좌번호, 고객의 이름, 고객의 잔액 이렇게 세가지만 저장 및 관리한다. 둘 이상의 고객 정보 저장을 위해 배열을 사용한다. 계좌번호는 정수의 형태이다. 내 코드 #include "stdafx.h" #include using namespace std; usin..
2024.04.11 -
5. [C++] 이름공간(namespace)
🍃 이름 공간의 등장 배경 프로그램이 대형화되어 가면서 이름의 충돌문제가 등장했다. 세 개의 회사에서 은행관리 시스템을 개발하는데, 이들은 일을 구분하여 독립적으로 진행하고 6개월 뒤 모여서 하나의 프로젝트를 완성하기로 약속했다. 6개월이라는 시간이 지난 뒤, 각 회사가 구현한 모듈을 하나로 묶고 부족한 부분을 완성할 때가 되었다. 그러나 문제가 생겼다. 1번 회사에서 정의한 함수와 2번 회사에서 정의한 함수의 이름이 같이 "이름 충돌"이 난 것이다. 함수의 이름을 변경하기에는 시간이 부족하다. 게다가 3번 회사에서 정의한 이름까지 충돌이 나게 되었다. 그렇다면 무엇이 해결책이었을까? 프로젝트 진행 전 함수 및 변수의 이름을 모두 정해 이름충돌이 발생하지 않게 하는 것이 해결책인가? 이는 근본적인 해결책..
2024.04.11 -
4. [C++] 인라인(inline) 함수
🍃 인라인 함수 이름의 의미 in은 내부를 의미 line은 프로그램 코드라인을 의미한다. 따라서 의역하면 "프로그램 코드 안으로 들어가 버린 함수"라는 의미가 된다. 🍃 매크로 함수 매크로 함수의 장점 일반적인 함수에 비해서 실행속도의 이점이 있다. 성능향상에 도움이 되는 상황이 있다. 매크로 함수의 단점 복잡한 함수를 매크로 형태로 정의하는데 한계가 있다. 매크로 함수 예시 #include #define SQUARE(x) ((x)*(x)) //매크로 함수 int main(void) { std::cout
2024.04.11