C++/C++ 기초 24

[C++] 참조 매개 변수 / 참조 리턴 (Reference parameter / Reference return) + Call-by-reference

참조 매개 변수와 참조 리턴을 이해하기 위해서는 프로그래밍 언어의 인자 전달 방식(argument passing) 에 대해 복습해야합니다. https://blog.naver.com/songsite123/222938354059 두 변수의 값 서로 바꾸기(Call-by-value/reference) 위 포스팅의 내용을 알아야 오늘의 내용이 쉽습니다. 프로그래밍을 하다 보면 두 변수의 값을 바꿔야 할 일... blog.naver.com 이전에 C 언어에서 다룰 때는 2가지로 구분하여 인자 전달 방식을 배웠습니다. 그 때의 용어와 오늘 다루게 될 용어가 다르니 혼돈하면 안됩니다. 위 포스팅에서는 Call by value (값에 의한 호출) / Call by reference (주소에 의한 호출) 을 2가지로 구..

C++/C++ 기초 2023.07.09

[C++] 동적 메모리 할당 : new / delete 연산자

동적 메모리 할당(Dynamic Memory Allocation) 및 해제 동적 메모리 할당을 알아보기에 앞서 정적 메모리 할당의 한계점을 하나 짚고 넘어가겠습니다. 앞선 포스팅... blog.naver.com C 언어에서는 malloc() 이나 free() 와 같은 표준 C 함수를 이용해 동적 메모리 할당 및 반환을 했습니다. 위 포스팅에 동적 메모리 할당과 반환은 무엇을 의미하는지 C 언어 기준으로 더 상세히 설명해놨습니다. C++ 에서는 new 와 delete 연산자를 통해 동적 메모리 할당/반환을 수행합니다. new 연산자는 힙 으로부터 메모리를 할당 받고, delete 연산자는 할당 받은 메모리를 힙으로 반환합니다. 기본 자료형 동적 할당/반환 기본 형식은 다음과 같습니다. 데이터타입 *포인터변..

C++/C++ 기초 2023.07.06

[C++] 문자열 관련 함수 : string 클래스 정리 및 사용법

[목차] 1. keyboard 입력 : getline(cin, address, '\n' : cin.getline(address, 크기, '\n'); 1번 키보드 입력 관련 자세한 내용은 ↓ 아래 포스팅에 나와 있습니다. [C++] 기본 입출력 ( 화면 출력 / 키 입력받기 / 문자열 입력받기 ) [목차] 1. 화면 출력 2. 키 입력 받기 (cin) 3. 문자열 입력 받기 cin.getline() 을 이용해 받는 방법 : 배열로 문자열 저장하는 경우 getline() 을 이용해 받는 방법 : string 객체 사용하는 경우 화면 출력 - co songsite123.tistory.com 2. 문자열 함수 문자열의 크기 ( .size(), .length(), .capacity() ... ) 조작함수 ( .a..

C++/C++ 기초 2023.07.05

[C++] 템플릿 ( Template ) - 함수 템플릿 / 클래스 템플릿

C++ 이 가지는 특징 중 하나로 일반화 프로그래밍(Generic programming) 을 들 수 있습니다. 일반화 프로그래밍이란 쉽게 말하자면 일반적인, 다양한 상황에서도 같은 코드로 적용할 수 있는 것을 말합니다. C++ 에서 일반화 프로그래밍을 할 수 있는 대표적인 기능 중 하나가 바로 템플릿(Template) 입니다. 말로는 무슨 소리인지 이해가 잘 안가죠. 간단한 예를 들어보겠습니다. #include #include int max(int a, int b) { if (a > b) return (a); else return(b); } float max(float a, float b) { if (a > b) return (a); else return(b); } int main(void) { int ..

C++/C++ 기초 2023.05.05

[C++] 생성자와 소멸자 ( Constructor and Destructor )

포스팅의 목차 / 링크 1. 생성자 (Constructor) 2. 디폴트 생성자 (Default Constructr) 3. 복사 생성자 (Copy Constructor) 4. 소멸자 (Destructor) 5. 생성자/소멸자 실행 순서 클래스를 통해 객체를 생성하면, 해당 객체는 그 즉시 메모리에 생성됩니다. 그러나 이 객체는 모든 멤버 변수를 초기화 하기 전에는 사용할 수 없습니다. 객체의 멤버 변수는 사용자나 프로그램이 일반적인 초기화 방식으로 초기화 할 수 없는데요, 그 이유는 객체의 멤버 중 private 멤버가 있는 경우 이런 멤버에 직접 접근할 수 없기 때문입니다. 따라서 private 멤버에 접근할 수 있는 초기화 만을 위한 public 함수가 필요한데, 이런 초기화 함수는 객체가 생성된 후..

C++/C++ 기초 2023.05.05

[C++] 클래스 ( Class )

클래스란 C++ 에서 지원하는 문법으로, 구조체의 상위 호환으로 생각할 수 있습니다. 구조체는 서로 다른 타입의 변수들을 묶어서 하나의 자료형으로 정의할 수 있었습니다. 클래스는 멤버로 함수를 포함할 수 있기 때문에 C 언어의 구조체보다 더 확장된 의미를 가집니다. 클래스의 멤버 변수를 property, 멤버 함수를 메소드(method) 라고 합니다. C++ 에서는 이러한 클래스를 가지고 객체 지향 프로그램을 작성할 수 있습니다. 객체 지향 프로그래밍(OOP, Object-Oriented Programming) C++ 은 객체 지향 프로그래밍 언어다. 이런 말을 모두 들어보고 C++ 공부를 시작하셨겠죠? 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며, 객체가 프로그래밍의 중심이 ..

C++/C++ 기초 2023.05.04

[C++] 함수 오버로딩 ( Function overloading )

함수 오버로딩(Function overloading)은 같은 이름의 함수를 중복하여 정의하는 것을 말합니다. 이러한 것을 굳이 왜 사용하느냐, C++ 에서 새로 추가된 함수 오버로딩은 여러 함수를 하나의 이름으로 연결해줍니다. 즉, 함수 오버로딩이란 같은 일을 처리하는 함수를 매개변수의 형식을 조금씩 달리하여 하나의 이름으로 작성할 수 있도록 해주는 것입니다. 이런 함수 오버로딩은 객체 지향 프로그래밍의 특성 중 다형성(polymorphism)의 구현입니다. 함수 시그니처(Function signature) 함수 시그니처란, 함수의 원형에 명시되는 매개변수 리스트 를 뜻합니다. 함수 오버로딩의 핵심이라고도 할 수 있습니다. 만약 두 함수가 매개변수의 개수와 그 타입이 모두 같다면, 이 두 함수의 시그니처..

C++/C++ 기초 2023.05.04

[C++] String 클래스 / 메소드

문자열(string) 이란 메모리에 저장된 일련의 연속된 문자들의 집합을 의미합니다. C++ 에서는 2가지 방법으로 문자열을 생성할 수 있습니다. 1. C와 동일한 방식 (배열) 2. string 클래스를 이용한 문자열 먼저 C와 동일한 방식으로 문자열을 간단히 만들어보고, 왜 string 클래스를 써야 하는가에 대해 알아봅시다. C와 동일한 방법으로 C++에서는 문자열을 입력받기 위해 문자열이 저장될 문자형 배열을 미리 선언해야 합니다. #include using namespace std; // std라는 name space에 속한 정의들은 이름 안붙이고 사용 가능 int main() { const int SIZE = 10; char name[SIZE]; char address[SIZE]; cout >..

C++/C++ 기초 2023.05.04

[C++] 메모리의 동적할당 ( Dynamic allocation )

https://blog.naver.com/songsite123/223044574844 동적 메모리 할당(Dynamic Memory Allocation) 및 해제 동적 메모리 할당을 알아보기에 앞서 정적 메모리 할당의 한계점을 하나 짚고 넘어가겠습니다. 앞선 포스팅... blog.naver.com 위 포스팅에서 C 언어를 통해 메모리의 동적할당 법에 대해 배워봤습니다. C는 malloc() 함수나 realloc(), calloc() 함수 등을 이용해 메모리 동적할당을 하고, free() 함수를 통해 메모리 공간을 해제합니다. 그러나 C++ 에서는 조금 다른 new 연산자와 delete 연산자를 통해 동적할당을 진행합니다. 간단히 동적할당이란 무엇인가에 대해 복습해보고, new 연산자와 delete 연산자를..

C++/C++ 기초 2023.05.04
728x90