본문 바로가기

반응형

전자 공학

(169)
[C++ 독학하기] 11. 생성자와 소멸자 안녕하세요. 취업한 공대누나입니다. 지난 시간에는 클래스를 초기화 해주는 생성자에 대해 알아보았는데요. 생성자에 대한 자세한 설명은 아래 포스팅을 참고해주세요. [C++ 독학하기] 10. 생성자 오늘은 생성자와 소멸자에 대해 알아보도록 하겠습니다. 생성자와 소멸자는 클래스 객체가 생성되거나 소멸될 때 자동으로 호출되는 함수입니다. 객체가 생성되는 시점에는 생성자를 호출하고 소멸되는 시점에는 소멸자를 호출하게 됩니다. 이러한 디폴트 생성자와 소멸자는 우리가 만들지 않아도 컴파일러가 알아서 만들어 넣어줍니다. 한 번 예제를 보도록 하겠습니다. 1. 자동으로 호출되는 생성자와 소멸자 왼쪽의 위에 있는 TEST()는 생성자를 ~TEST()는 소멸자를 나타냅니다. 즉 소멸자는 클래스 이름과 같아야 하고 앞에 ~를..
[C++ 독학하기] 10. 생성자 안녕하세요. 취업한 공대누나입니다. 지난 시간에는 클래스에 대해 공부를 했었는데요. 오늘은 생성자에 대한 이야기를 해보겠습니다. 1. 생성자 (Constructor)란? 클래스를 정의한 후 객체를 생성하게 되면 메모리에 할당이 되게 됩니다. 이 때 멤버 변수들은 초기화되지 않은 상태라서 사용할 수가 없는데요. C++에서는 객체의 생성과 동시에 멤버 변수를 초기화 해주는 생성자 함수가 있습니다. 우리는 이러한 생성자를 이용해서 보다 쉽게 객체를 선언하고 사용할 수 있습니다. 생성자는 일반적으로 클래스의 멤버 변수를 적절한 기본값 또는 사용자 제공 값으로 초기화 할 때 사용합니다. 또한 외부에서 클래스를 생성함과 동시에 사용해야 하므로 public 영역에 만들어야 합니다. 생성자를 이용하는 함수에는 중요한 ..
[C++ 독학하기] 8. 인라인 함수 개념 안녕하세요. 취업한 공대누나입니다. 요즘은 C++에 대한 공부를 계속해서 해나가고 있는데요. 오늘은 인라인 함수에 대해서 공부해보도록 하겠습니다. 1. 인라인(Inline) 함수란? 일반적으로 함수를 호출하면 메모리 사용이 증가하고 매개변수 때문에 메모리 복사가 일어나며 제어 흐름도 이동해야 합니다. 눈에 보이지는 않아도 내부적으로는 여러 연산들이 일어나고 있는 것입니다. 복잡한 함수의 경우 함수를 호출할 때 생기는 오버헤드가 크게 중요하지 않지만 간단한 함수의 경우 함수 호출에 필요한 시간이 함수를 실행하는데 필요한 시간보다 더 긴 경우가 있습니다. 보통 이러한 오버헤드들을 줄이기 위해서 매크로를 사용합니다. 하지만 매크로는 함수가 아니기 때문에 논리적 오류를 발생시킬 수 있으며 매개변수 형식을 지정할..
[C++ 독학하기] 7. 함수 다중 정의, 오버로딩 개념 안녕하세요. 취업한 공대누나입니다. 오늘은 C++의 또다른 특징 중 하나인 오버로딩 개념에 대해서 알아보도록 하겠습니다. 헷갈릴수도 있지만 천천히 보시면 어려운 개념이 아닌 것을 알게 되실 겁니다. 시작하겠습니다. 1. 오버로딩(Overloading)이란? 함수 다중 정의라고도 말합니다. 이름 그대로 나타나 있듯이 여러 의미를 동시에 갖는 것을 말합니다. C에서는 이름이 같은 함수가 존재할 수 없었는데요. C++에서는 매개변수의 갯수가 달라지거나 하면 이름이 같아도 다른 함수로 인식이 됩니다. 이것을 C++는 함수의 다형성을 지원한다고도 말합니다. 예제를 통해 보도록 하겠습니다. 2. 예제 소스코드 저는 왼쪽과 같이 Add_test라는 함수를 세 가지 형태로 다중 정의를 해보았습니다. 가장 위쪽의 Add..
[C++ 독학하기] 6. 디폴트 매개변수란? 안녕하세요. 취업한 공대누나입니다. 오늘은 디폴트 매개변수의 개념에 대해서 알아보고 소스 코드에서 차근차근 보도록 하겠습니다. 1. 디폴트 매개변수 우리 함수에 대해 공부를 할 때 함수를 호출하던 부분을 기억하시나요? 함수를 호출하기 위해서는 매개변수의 값을 적어야 합니다. 예를 들어서 Add(1,2);와 같은 형식으로 말이죠. 하지만 C++의 경우 디폴트 매개변수라는 개념이 있습니다. 아래 소스부터 보도록 하겠습니다. default_test라는 함수의 test라는 매개변수의 초기값이 100임을 알 수 있습니다. 이 함수는 해당 매개변수를 그대로 리턴을 하는 함수입니다. 첫번재 출력 구문을 보면 실인수를 생략한 것을 볼 수 있습니다. 결과창에는 디폴트 값인 100이 그대로 출력되게 됩니다. 즉 이와 같이..
[C++ 독학하기] 5. 범위 기반 for문 안녕하세요. 취업한 공대누나입니다. 오늘은 C++에 새로 생긴 범위 기반 for문에 대해서 공부를 해보도록 하겠습니다. 저도 처음 접해보는 것이라 정말 새로운 문법이었는데요. 우리가 일반적으로 쓰던 for문과는 무엇이 다른지 살펴보도록 하겠습니다. 1. 범위 기반 for문 예전에 for문에 대해 배운것을 기억하시나요? for문은 대부분 일정 '횟수'를 중심으로 반복을 하게 됩니다. 따라서 보통 배열 자료구조에 접근할 때 for문을 자주 사용하게 되는데 이는 배열의 요소가 선언할 때 확정되기 때문입니다. 그런데 만약 배열 요소의 개수를 변경해야 한다면 for문도 수정을 해야합니다. 하지만 범위 기반 for문으로 작성을 하게 되면 그럴 필요가 없습니다. 범위 기반 for문은 C++11에서 공식적으로 추가되었..
[C++ 독학하기] 4. 참조자(Reference)의 개념 안녕하세요. 취업한 공대누나입니다. 오늘은 참조자의 개념에 대해서 소스 코드와 함께 간단히 알아보도록 하겠습니다. 1. 참조자(Reference)란? 참조형 변수라고도 합니다. 변수는 할당된 메모리 공간에 붙여진 이름입니다. 우리는 이 이름을 가지고 해당 메모리 공간에 접근할 수 있습니다. 참조자는 할당된 하나의 메모리 공간에 다른 이름을 붙이는 것을 말합니다. 쉽게 말하면 별명을 붙이는 것입니다. 참조자가 처음 어떤 변수와 짝을 이루게 되면 그 짝이 달라지거나 하지는 않습니다. 즉, 한번 초기화되고 나서는 다른 변수를 참조하는 것은 불가능합니다. 원래 변수를 이름이라고 하고 참조자를 별명이라고 하면 아래와 같은 형식을 갖게 됩니다. 형식 &별명 = 이름 그렇다면 예제를 통해 보도록 하겠습니다. 처음에 ..
[C++ 독학하기] 3. new와 delete 연산자에 대한 개념 안녕하세요. 취업한 공대누나입니다. 오늘은 new와 delete의 개념에 대해 공부해보도록 하겠습니다. 할당에 대한 개념을 먼저 잡고 들어가겠습니다. 1. 개념 new와 delete는 C++에서 객체를 동적 할당하고 해체하는 '연산자'입니다. C++에는 세 가집 타입의 메모리 할당이 있습니다. 1) 정적 메모리 할당(static memory allocation)은 정적 변수와 전역변수에 대해 발생하는 것으로 프로그램이 실행될 때 한 번 할당되며, 프로그램 수명 내내 지속하게 됩니다. 2) 자동 메모리 할당(auto memory allocation)은 함수 매개변수와 지역 변수에 대해 발생하는 것으로 이러한 타입의 변수에 대한 메모리는 관련 블록을 입력할 때 할당되고, 블록을 종료할 때 필요에 따라 여러 ..

반응형