컴퓨터 공학 일지/C++ (9) 썸네일형 리스트형 C++ 참조자 - 1 참조자의 이해 우리는 변수를 어떻게 이해하고 있나요? 우리는 데이터를 활용하여 무엇인가를 동작시켜야한다. 그러려면 그데이터를 담아둘 공간이 필요하고 꺼낼 수 도 있어야한다. 이를 필자는 비공학적으로 이야기해보겠습니다. 우리가 건축물을 짓는다고 상상해볼게요. 건축물을 짓기위해선 물,돌,시멘트,철근 등등과 같은 재료들이 우선적으로 필요하겠죠. 그리고 이 재료들을 옮길 수 있는 도구가 필요합니다. 현실에서는 이 재료들을 옮길 수 있는 도구는 바구니가 있겠죠? 이제 데이터 = 재료 , 변수 = 바구니라고 생각하고 진행해봅시다. 우리는 이렇게 막연한 바구니를 생각해내었습니다. 하지만 우리가 담아야할 재료들은 각기 다른 재료들이 존재하죠. 물, 돌, 시멘트, 철근 등등이요. 우리는 이렇게 4가지의 바구니를 보유하고.. C++ C 복습 문제 1. 키워드 const의 의미 [ 다음 문장들이 어떤 뜻을 가지는가 ] const int num=10; = > 변수 num을 상수화 const int * ptr1=&val1; = > 포인터 ptr1을 이용하여 val의 값을 변경할 수 없음 int * const ptr2=&val2; = > 포인터 ptr2가 상수화 const int * const ptr3=&val3; = > 포인터 ptr3가 상수화 되었고, ptr3를 이용하여 val3의 값을 변경할 수 없음 2. 실행중인 프로그램의 메모리공간 데이터 : 전역 변수가 저장되는 영역 스택 : 지역 변수 및 매개 변수가 저장되는 영역 힙 : malloc 함수 호출에 의해 프로그램이 실행되는 과정에서 동적으로 할당이 이뤄지는 영역 malloc & free : m.. C++ 은행 계좌 관리 프로그램 #include #include using namespace std; const int NAME_LEN = 20; void ShowMenu(void); void MakeAccount(void); void DepositMoney(void); void WithDrawMoney(void); void ShowAllAccInfo(void); enum {MAKE=1,DEPOSIT,WITHDRAW,INQUIRE,EXIT}; typedef struct { int accID; int balance; char cusName[NAME_LEN]; } Account; Account accArr[100]; int accNum = 0; int main(void) { int choice; while (true) { ShowMenu(.. C++ 네임스페이스와 입출력문 std::cout | std::cin | std::endl C++ 에서 콘솔의 입출력을 담당하던 3가지 std::cout std::cin std::endl 이는 우리가 앞서 배운 네임스페이스 개념이 사용되었습니다. 네임스페이스 개념에서 :: 은 범위지정 연산자였고 이는 네임스페이스 영역을 지정해줄 때 사용됩니다. 이 연산자의 개념과 네임스페이스 개념을 이해하였다면 위의 3개는 다음과 같은 해석이 가능합니다. 네임스페이스 std에 선언된 cout 네임스페이스 std에 선언된 cin 네임스페이스 std에 선언된 endl 이는 다음과 같은 구조를 가집니다. namespace std { cout . . . . cin . . . . endl . . . . } 즉, 우리는 입출력문을 다음과 같이 사용할 수 있음을 시사하기도 합니다. #include using namespa.. C++ 이름공간(네임스페이스{namespace}) 네임 스페이스의 사용 이유 - 다수의 집단이 한가지의 프로젝트를 진행할 경우 중복되는 함수,변수들이 발생할 수 있기 때문에 이를 피하기 위하여 고안된 방법 네임 스페이스의 기본 이해 다수의 집단이 프로젝트에 참여하고 있다는 가정하에 예제를 들어 이해해봅시다. #include using namespace std; void Function(void) { cout C++ 인라인 함수 C++ 매크로 함수의 정의 정의하는 방법 #include using namespace std; inline int SQUARE(int x) { return x * x; } int main(void) { cout C++ 디폴트 값 C++에서는 함수의 매개변수에 디폴트 값 설정이 가능하다. 디폴트(default)란, 사전적의 의미론 체납, 채무 불이행 등등의 뜻이 있습니다. 프로그래밍 언어에서의 디폴트는 비슷하지만 조금 다른 의미를 가지고 있습니다. 필자가 생각하기엔 최초의 시작값이라고 이야기하고 싶습니다. 우선 디폴트값을 설정하는 법 부터 알아보죠. C++에서의 디폴트값 선언 int Function(int num=10){ return num+1; } 앞서 보던 매개변수와는 조금 다른 모습을 보이지요. 기존 매개변수는 다음과 같이 선언 했습니다. int Function(int num){ return num; } 위의 매개변수는 int num=10 그리고 기존의 방식은 int num 으로 선언되어 있지요. 이를 해석하자면 매개변수를 .. C++ 함수의 오버로딩 이미 앞서 객체지향 언어를 배운사람들은 다들 알고있는 내용 입니다. 자바를 배우신분들은 메소드 오버로딩으로 익히 알고있는 내용이죠. 오버로딩(Over loading) 이란, 직역하면 과적재라는 뜻을 가지고있습니다. 실제에 비유한다면 '카고 차량등에 짐을 과적재' 한다 할 수 있습니다. 이를 프로그래밍 언어에 빗대서 생각한다면 무엇을 과적재 할 수 있을까요? 이를 간단하게 C++에서 설명해보도록 하겠습니다. C++에서의 함수의 오버로딩이란? 우리는 함수를 사용할때 다음과 같이 정의합니다. int Function(int num){ return num; } 간단하게 설명하면 int(정수형) 변수의 Function이라는 이름을 가진 함수를 선언하고 Function이라는 함수는 int(정수형) num인 자료형을 .. 이전 1 2 다음