C언어 9

16. C++ STL 알고리즘, 입력과 출력, 예외 처리

함수 객체함수 객체(function object)- STL 알고리즘에 데이터를 전달하기 위해서는 다음과 같은 방법을 사용합니다.    1. 함수 포인터   2. 함수 객체   3. 람다 표현식 - 많은 STL 알고리즘이 데이터를 처리하기 위해 매개변수로 함수 객체를 받아들입니다.- 펑크터(functor)라고도 불리는 함수 객체는 호출 연산자(())와 함께 사용할 수 있는 객체를 의미합니다.- 이러한 함수 객체는 우선 타입을 선언하고, 해당 클래스에서 호출 연산자(())를 오버로딩하여 구현하게 됩니다. 함수 객체의 장점직접적인 함수 호출과 비교하여 함수 객체를 사용하면 다음과 같은 장점을 가집니다.  1. 함수 객체는 상태(state)를 포함할 수 있습니다. 2. 함수 객체는 타입이므로, 템플릿 인수로 사..

12. C++ 생성자와 소멸자, 연산자 오버로딩

C++ 생성자와 소멸자, 연산자 오버로딩 생성자- 정의 : 생성자는 클래스의 특별한 멤버 함수로, 객체를 초기화하는 역할을 합니다.- 문법 :class ClassName { public: ClassName(parameters); }; - 예제:class Book { public: Book(const string& title, int total_page); private: string title_; int total_page_; int current_page_; double percent_; void set_percent(); }; Book::Book(const string& title, int total_page) { title_ = title; ..

11. C++ 함수의 범위와 클래스

C++ 함수와 범위에 대한 이해- C++ 프로그래밍 언어는 강력한 기능을 제공하며, 그 중 함수와 범위는 핵심적인 개념입니다.- 이를 통해 코드의 가독성과 유지보수성을 높일 수 있는 방법을 배울 수 있습니다. 함수 선언과 정의- C++에서 함수는 프로그램의 여러 부분에서 반복적으로 사용할 수 있는 코드 블록입니다. 함수는 선언과 정의로 나뉩니다. 선언은 함수의 이름과 매개변수를 명시하고, 정의는 실제 함수의 동작을 구현합니다.// 함수 선언int add(int a, int b);// 함수 정의int add(int a, int b) { return a + b;}함수 참조- 함수 참조는 함수가 정의된 위치와 다른 곳에서 그 함수를 사용할 수 있게 해줍니다. 이는 코드의 재사용성을 높여주며, 모듈화된 프..

10. C++ 함수의 기본

C++ 함수의 기본- C++ 함수는 프로그램의 특정 작업을 수행하는 코드 블록입니다.- 함수는 코드의 재사용성을 높이고 가독성을 향상시킵니다.  함수의 정의와 호출- C++에서 함수는 다음과 같은 구조로 정의됩니다: 반환형 함수명(매개변수) { // 함수 본문 return 값; // 반환형이 void인 경우 생략 가능 }// 예를 들어, 두 수를 더하는 함수를 정의해보겠습니다:int add(int a, int b) { return a + b; }// 위의 add 함수는 두 개의 정수를 받아 그 합을 반환합니다. 함수는 다음과 같이 호출됩니다:int result = add(3, 4); // result는 7 매개변수 전달 방법- 매개변수를 전달하는 방법에는 값에 의한 호출(Call b..

09. C++ 구조체의 기본과 활용

C++ 구조체: 기본과 활용- C++의 구조체(struct)는 여러 데이터를 하나의 단위로 묶어주는 사용자 정의 데이터 타입입니다.- 구조체는 연관된 데이터를 하나의 그룹으로 관리할 수 있도록 도와줍니다.  구조체의 기본 개념struct 구조체명 { 데이터타입 변수명1; 데이터타입 변수명2; // 추가 멤버 변수 };struct Student { std::string name; int age; double grade; }; 위 코드에서 Student라는 구조체는 학생의 이름, 나이, 성적을 저장하는 세 개의 멤버 변수를 포함하고 있습니다. 구조체 변수 선언과 초기화- 구조체를 정의한 후에는 구조체 변수를 선언하고 초기화할 수 있습니다.- 다음은 Student 구조체 변수를 선언하고 초기화하는 예제입니..

08. C++ string 클래스와 메소드

C++에서의 문자열 처리: string 클래스의 이해 C++ 프로그래밍 언어는 문자열을 다루기 위해 두 가지 방법을 제공합니다 : 전통적인 C언어 스타일의 문자형 배열과 C++에 새롭게 도입된 string 클래스입니다. 이번 포스트에서는 후자인 string 클래스에 초점을 맞춰 보겠습니다. string 클래스의 기본 string 클래스는 문자열을 보다 편리하게 다룰 수 있도록 해주는 C++의 표준 라이브러리 컴포넌트입니다. 이를 사용하기 위해서는 먼저 #include 을 통해 헤더 파일을 포함시켜야 하며, std 네임스페이스를 명시해야 합니다. string 클래스는 문자형 배열보다 사용하기 편리하며, 다음과 같은 방식으로 문자열의 선언 및 초기화가 가능합니다: #include #include using ..

07. C++ 배열과 포인터 - 포인터의 연산과 동적 할당 메모리

포인터 연산 - 포인터는 값을 증가시키거나 감소시키는 등의 제한된 연산만을 할 수 있습니다. - C++의 포인터 연산의 규칙 포인터끼리의 덧셈, 곱셈, 나눗셈은 아무런 의미가 없습니다. 포인터끼리의 뺄셈은 두 포인터 사이의 상대적 거리를 나타냅니다. 포인터에 정수를 더하거나 뺄 수는 있지만, 실수와의 연산은 허용되지 않습니다. 포인터끼리 대입하거나 비교할 수 있습니다. 타입별 포인터 연산 - C++의 포인터 연산에서 포인터 연산은 연산 후 각각의 포인터가 가리키고 있는 주소는 포인터의 타입에 따라 달라집니다. - 그 증가 폭, 감소 폭은 포인터가 가리키는 변수의 타입의 크기와 같습니다. 포인터와 배열의 관계 - 포인터와 배열을 매우 긴밀한 관계를 맺고 있으며, 배열의 이름은 포인터와 같습니다. - C++..

06. C++ 배열과 포인터 - 포인터의 개념

주소값의 이해 - 데이터의 주소값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다. - C++에서는 데이터의 시작 값 1바이트가 주소를 의미합니다. 포인터란? - C++에서 포인터(Pointer)란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고 부릅니다. int n = 100; // 변수의 선언 int *ptr = &n; // 포인터의 선언 다음 그림은 위의 예제에서 사용된 변수와 포인터가 메모리에서 어떻게 저장되는지를 보여주는 예제입니다. 포인터 연산자 - C++에서 포인터와 연관되어 사용되는 연산자는 주소 연산자 (&), 참조 연산자 (*)이 있습니다. 주소 연산자 (&) - 주소 연산자는 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환합니다. - & 기호는 앰퍼샌드(amper..

02. C++ 언어 변수와 여러가지 데이터 타입

변수, Variable란? - 변수는 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미합니다. - 즉, 변수란 데이터를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있습니다. 변수의 이름 생성 규칙 변수의 이름은 영문자(대소문자), 숫자, 언더스코어(_)로만 구성할 수 있습니다. 변수의 이름은 숫자로 시작할 수 없습니다. 변수의 이름 사이에는 공백을 포함할 수 없습니다. 변수의 이름으로 C++에서 미리 정의된 키워드(예약어)는 사용할 수 없습니다. 변수 이름의 길이에는 제한이 없습니다. 변수의 선언 - 변수를 저장하기 위한 메모리 공간을 할당받아야 하는데 이 행위를 변수의 선언이라고 부릅니다. - C++에서 변수를 선언하는 방법에는 다음과 같이 두 가지..