프로그래밍 자습서 - 페이지 3

 

OOP 생성자 - 알아야 할 생성자의 유형(기본에서 숙달)



OOP 생성자 - 알아야 할 생성자의 유형(기본에서 숙달)

이 비디오에서는 다양한 유형의 생성자, 목적 및 프로그래밍에 필수적인 이유에 대해 설명합니다. 예제를 제공하고 생성자의 배경 작업을 설명하겠습니다. 하지만 시작하기 전에 PBS Studio라는 몇 년 동안 사용해 온 도구를 추천하고 싶습니다. 버그를 추적하고 코드 품질을 향상시키는 데 도움이 되는 강력한 정적 코드 분석기입니다. 다양한 IDE와 쉽게 통합되며 C, C++, C# 및 Java와 같은 언어를 지원합니다. 다운로드 링크를 찾을 수 있으며 학생이라면 무료로 다운로드할 수 있는 방법도 찾을 수 있습니다. 이제 비디오로 돌아가 보겠습니다.

시작하려면 "firstName", "lastName", "age" 및 "email"과 같은 공용 멤버를 사용하여 "User"라는 클래스를 생성해 보겠습니다. 현재 우리는 생성한 각 사용자에 대해 이러한 속성에 값을 수동으로 할당합니다. 그러나 이 방법은 사용자 수가 증가함에 따라 비실용적이 됩니다.

대신 생성자를 사용하여 더 나은 솔루션을 탐색합니다. 생성자는 개체를 구성하는 데 사용되며 개체 속성을 초기화하는 프로세스를 자동화합니다. 예제를 통해 생성자의 배경 작업을 설명하는 것으로 시작하겠습니다.

데모를 위해 두 번째 사용자를 제거하고 첫 번째 사용자의 정보를 출력해 보겠습니다. 프로그램을 실행하면 출력에 firstName, lastName 및 email에 대한 빈 값과 age에 대한 크거나 작은 숫자가 표시되는 것을 알 수 있습니다. 왜 이런 일이 발생하고 오류가 없는지 살펴보겠습니다.

이 동작의 원인은 C++에서 제공하는 기본 생성자 때문입니다. 연령에 대해 표시되는 큰 숫자와 같은 기본값으로 속성을 초기화합니다. 그러나 "test"와 같은 간단한 변수를 초기화하지 않고 만들면 간단한 유형에 기본 생성자가 없기 때문에 오류가 발생합니다.

이제 생성자의 특성을 살펴보겠습니다. 첫째, 생성자는 클래스와 이름이 같고 반환 유형이 없습니다. 둘째, 클래스의 공개 섹션에 배치해야 합니다. 셋째, 기본 생성자에는 매개변수가 없습니다. 넷째, C++는 기본 생성자를 생성하지 않으면 자동으로 생성합니다. 다섯째, 매개변수화된 생성자는 매개변수를 받아 개체 속성을 초기화합니다. 마지막으로 기본 생성자는 해당 클래스의 객체가 생성될 때 자동으로 호출됩니다.

속성에 기본값을 할당하여 고유한 기본 생성자를 구현해 보겠습니다. 이 변경으로 사용자를 생성할 때마다 기본 생성자가 호출됩니다. 이제 사용자 정보를 인쇄하면 할당한 기본값이 표시됩니다.

계속해서 생성자의 두 번째 유형인 매개변수화된 생성자를 살펴보겠습니다. 기본 생성자와 달리 매개변수화된 생성자는 특정 값을 매개변수로 받아들이고 이를 사용하여 객체 속성을 인스턴스화합니다. firstName, lastName 및 age에 대한 매개변수를 사용하는 매개변수화된 생성자의 예를 제공하겠습니다.

이러한 매개변수를 사용하여 제공된 값을 해당 속성에 할당할 수 있습니다. 이를 통해 개체 생성 중에 직접 특정 정보를 사용하여 사용자를 생성할 수 있습니다.

그것은 생성자의 기본과 사용법을 다룹니다. 향후 동영상에서 더 많은 예시와 통찰력을 기대해 주세요.

OOP Constructors - Types of Constructors You Need to Know (Basics to Mastery)
OOP Constructors - Types of Constructors You Need to Know (Basics to Mastery)
  • 2023.03.21
  • www.youtube.com
📚 Learn how to solve problems and build projects with these Free E-Books ⬇️C++ Lambdas e-book - free download here: https://bit.ly/freeCppE-BookEntire Objec...
 

C++의 친구 함수 및 클래스(초보자를 위한 프로그래밍)



C++의 친구 함수 및 클래스(초보자를 위한 프로그래밍)

이 비디오에서는 C++의 친구 기능과 친구 클래스에 대해 알려드리게 되어 기쁩니다. 프로그래밍에서의 이러한 우정 개념은 실생활에서의 우정과 유사합니다. 친구가 다른 사람이 액세스할 수 없는 삶의 사적인 영역에 액세스할 수 있는 것처럼 객체 지향 프로그래밍의 친구 기능과 친구 클래스는 클래스의 비공개 및 보호된 멤버에 액세스할 수 있습니다.

이 영상에서는 친구 기능과 친구 클래스를 언제 어떻게 사용하는지 알아봅니다. 데모를 위해 Visual Studio Community를 사용하고 Visual Assist라는 뛰어난 확장 기능도 소개하겠습니다. 아래 설명에서 다운로드 링크를 찾을 수 있습니다. Visual Assist는 특히 Unreal Engine과 같은 엔진을 사용한 대규모 프로젝트 또는 게임 개발에 많은 전문 개발자가 사용하는 스마트 코딩 도우미입니다. 코드 완성을 향상하고, 리팩토링을 위한 스마트한 제안을 제공하고, 코드 스니펫을 제공하고, 프로젝트 내에서 탐색 및 검색을 개선합니다.

이제 친구 기능에 대해 알아보겠습니다. 이 개념을 설명하기 위해 문제를 만들고 친구 기능을 사용하여 해결해 봅시다. 세 변의 길이가 모두 같은 삼각형을 나타내는 "EquilateralTriangle"이라는 클래스를 만듭니다. 이 클래스는 측면 길이, 원주 및 면적에 대한 전용 변수를 갖습니다. 또한 변의 길이를 설정하고 해당 방법 내에서 둘레와 면적을 계산하는 공용 세터 방법을 추가합니다.

그러나 클래스 외부의 개인 멤버에 액세스하려고 하면 오류가 발생합니다. 한 가지 해결책은 비공개 멤버를 공개하거나 공개 게터를 만드는 것이지만 모든 사람에게 노출됩니다. 대신 친구 기능을 사용하여 선택적으로 액세스 권한을 부여할 수 있습니다. 삼각형의 둘레와 면적을 인쇄하는 "PrintResults"라는 전역 함수를 만듭니다. 이 함수를 EquilateralTriangle 클래스의 friend로 선언하면 전용 멤버에 액세스할 수 있습니다.

그러나 친구 기능을 신중하게 선택하고 캡슐화를 유지하기 위해 과도한 사용을 피하십시오. 또한 C++에서는 프렌드 클래스도 가질 수 있습니다. "Homework"라는 클래스 내부로 "PrintResults" 함수를 이동시켜 공용 멤버 함수로 만들면 "Homework"를 "EquilateralTriangle"의 friend 클래스로 선언할 수 있습니다. 이 방법으로 "Homework" 클래스는 "EquilateralTriangle"의 비공개 및 보호된 멤버에 액세스할 수 있습니다.

프로그래밍에서 우정은 상호적이거나 상속되지 않는다는 점에 유의하는 것이 중요합니다. friend 함수와 friend 클래스를 신중하게 사용하고 상속 및 연산자 오버로드에도 friend 함수의 일반적인 사용 사례가 포함된다는 점을 기억하십시오. 자세한 내용 및 관련 숙제는 연산자 오버로딩(설명에 링크됨)에 대한 내 비디오를 확인하십시오.

프로그래밍 프로젝트에서 친구 기능과 친구 클래스를 이해하고 활용하는 데 이 비디오가 도움이 되기를 바랍니다. 더 흥미로운 콘텐츠를 기대하고 Visual Studio용 Visual Assist 확장을 확인하는 것을 잊지 마십시오!

Friend functions and classes in C++ (Programming for beginners)
Friend functions and classes in C++ (Programming for beginners)
  • 2021.12.21
  • www.youtube.com
📚 Learn how to solve problems and build projects with these Free E-Books ⬇️C++ Lambdas e-book - free download here: https://bit.ly/freeCppE-BookEntire Objec...
 

프로그래밍의 소멸자: 실제 데모



프로그래밍의 소멸자: 실제 데모

이 비디오에서는 프로그래밍의 소멸자에 대해 알려 드리겠습니다. 소멸자가 무엇인지, 어떻게 사용하는지, 언제 사용하는지 배우게 됩니다. 마지막에 여러분을 위한 특별한 서프라이즈가 있으니 전체 영상을 꼭 시청하세요. 소멸자에 대해 알아보기 전에 생성자를 이해하는 것이 중요합니다. 생성자에 익숙하지 않은 경우 여기에 링크된 이전 비디오와 설명을 시청하세요.

소멸자는 개체가 소멸될 때 호출되는 특수 함수입니다. 객체가 보유한 메모리나 파일과 같은 리소스 해제와 같은 필요한 정리 작업을 수행합니다. 이러한 리소스를 해제하지 못하면 성능과 안정성이 저하되고 메모리 누수가 발생할 수 있습니다.

소멸자에 대해 논의하기 전에 제가 좋아하는 PBS Studio라는 도구를 소개하고 싶습니다. 버그 없이 더 나은 코드를 작성할 수 있도록 도와주는 정적 코드 분석기입니다. 잠재적인 문제와 버그에 대한 코드를 분석하여 프로덕션에 들어가기 전에 오류를 포착하여 시간과 비용을 절약합니다. 널리 사용되는 IDE와 쉽게 통합할 수 있으며 여러 프로그래밍 언어를 지원합니다. 설명의 링크에서 다운로드하여 무료로 사용해 볼 수 있습니다. 학생이라면 웹사이트에서 무료 옵션을 확인하세요.

이제 소멸자를 살펴보겠습니다. 소멸자는 클래스 이름과 동일한 이름을 가진 특수 함수이며 앞에 물결표(~)가 붙습니다. 반환 유형이 없고 매개변수를 받지 않으며 클래스의 공개 섹션에 배치해야 합니다. 클래스당 하나의 소멸자만 있을 수 있습니다.

소멸자를 설명하기 위해 "제목"과 "저자"라는 두 가지 속성이 있는 "Book"이라는 클래스를 만들어 보겠습니다. 또한 생성자와 소멸자를 생성합니다. 소멸자는 개체가 보유한 모든 리소스를 할당 해제해야 합니다.

생성자 내에서 전달된 매개변수를 해당 속성에 할당합니다. 소멸자 내부에서 소멸자가 특정 책에 대해 호출되었음을 나타내는 메시지를 출력합니다.

이제 생성자와 소멸자가 언제 호출되는지 확인하기 위해 몇 가지 책 개체를 만들어 보겠습니다. 프로그램을 디버그하고 호출 순서를 관찰합니다.

클래스에 포인터가 포함되지 않은 경우 컴파일러는 메모리 할당 해제를 자동으로 처리합니다. 그러나 포인터로 작업하는 경우 메모리 누수를 방지하려면 소멸자에서 수동으로 메모리 할당을 해제해야 합니다. 배열에 "delete[] arrayName"을 사용하고 할당 해제 후 포인터를 nullptr로 설정해야 합니다.

이 비디오가 리소스 관리에서 소멸자와 소멸자의 중요성을 이해하는 데 도움이 되었기를 바랍니다. 다음 비디오에서는 복사 생성자를 살펴보겠습니다. 계속 지켜봐 주시기 바랍니다.

Destructors in Programming: Practical Demonstration
Destructors in Programming: Practical Demonstration
  • 2023.03.29
  • www.youtube.com
📚 Learn how to solve problems and build projects with these Free E-Books ⬇️C++ Lambdas e-book - free download here: https://bit.ly/freeCppE-BookEntire Objec...
 

C++ 복사 생성자(초보자에게 친숙한 자습서 + 실제 예제)



C++ 복사 생성자(초보자에게 친숙한 자습서 + 실제 예제)

안녕하세요 여러분, 제 채널에 오신 것을 환영합니다. 이번 영상에서는 초보자에게 중요하지만 헷갈리는 주제인 복사 생성자에 대해 알려드리겠습니다. 이 비디오를 보기 전에 기본 생성자와 매개 변수화된 생성자를 포함하여 다양한 유형의 생성자에 대한 이전 비디오를 시청하십시오(설명의 링크). 또한 이 주제를 더 잘 이해하는 데 도움이 될 포인터 및 동적 배열(설명의 링크)에 대한 제 비디오를 확인하십시오.

이 비디오에서는 복사 생성자에 대해 알아야 할 모든 것을 설명합니다. 초보자는 종종 복사 생성자의 개념을 이해하지만 언제 어떻게 사용하는지, 발생할 수 있는 잠재적인 버그와 오류를 이해하는 데 어려움을 겪습니다. 이 모든 측면을 단계별로 다룰 것입니다.

이전 비디오의 코드를 검토하여 시작하겠습니다. 제목, 저자 및 "rates"라는 포인터와 같은 속성이 있는 "Book"이라는 클래스를 만들었습니다. "rates" 포인터는 사용자가 책에 대한 평가를 입력할 수 있는 동적 배열을 나타냅니다. 배열 크기를 추적하는 "속도 카운터"도 있습니다. 포인터와 동적 배열에 익숙하지 않은 경우 이 주제에 대한 내 비디오를 시청하는 것이 좋습니다(설명의 링크).

저는 Book 클래스에 대한 매개변수화된 생성자를 구현했습니다. 이 생성자는 제목과 저자를 매개변수로 사용하고 해당 값을 기반으로 책 개체를 생성합니다. 생성자에 의해 할당된 메모리를 해제하는 데 중요한 소멸자도 포함했습니다. PVS-Studio와 같은 코드 분석기를 사용하여 코드의 숨겨진 오류와 약점을 감지하는 것이 중요합니다. 저는 개인적으로 PVS-Studio를 사용하는 것을 추천합니다. 오류를 찾고 이를 수정하기 위한 제안을 제공하는 데 효과적이기 때문입니다. 설명에 있는 링크를 사용하여 무료로 다운로드할 수 있습니다.

이제 복사 생성자 주제에 초점을 맞추겠습니다. 복사 생성자의 목적은 기존 개체를 기반으로 새 개체를 만드는 것입니다. 개체의 복사본을 만들고 이를 사용하여 새 개체를 만들 수 있습니다. 기본적으로 C++는 기본 복사 생성자를 제공합니다. 그러나 포인터로 작업할 때 오류를 방지하려면 사용자 지정 복사 생성자를 만들어야 합니다.

사용자 지정 복사 생성자가 없으면 포인터를 사용하면 예외 및 오류가 발생할 수 있습니다. 다음 시나리오를 고려해 보겠습니다. "Book1"의 데이터를 기반으로 "Book3"을 만들고 싶습니다. "Book1"의 모든 속성을 복사하여 "Book3"을 만들고 싶습니다. 이것은 복사 생성자가 작동하는 곳입니다.

복사 생성자를 만들려면 다음 규칙을 따르십시오.

  1. 클래스의 public 섹션에 선언해야 합니다.
  2. 반환 유형이 없습니다(void도 아님).
  3. 이름은 클래스 이름과 일치해야 합니다.
  4. 원래 객체를 나타내는 동일한 클래스 유형의 매개변수를 사용합니다.

복사 생성자를 만들어 봅시다. 복사 생성자에서 원본 개체를 상수 참조(const Book& original)로 받습니다. 이렇게 하면 복사 생성자 내부의 원본 개체가 수정되지 않습니다.

이제 복사 생성자를 만들 때 초보자가 흔히 저지르는 실수를 해결해 보겠습니다. 실수는 새 메모리를 할당하고 내용을 복사하는 대신 포인터를 직접 복사하는 데 있습니다. 포인터를 복사하면 원본과 복사본이 모두 동일한 메모리 위치를 가리킵니다. 결과적으로 소멸자가 호출되면 메모리 해제를 두 번 시도하여 오류가 발생합니다.

이 문제를 해결하려면 복사를 위한 새 메모리를 할당하고 원래 포인터의 내용을 복사해야 합니다. 포인터를 직접 할당하는 대신 새로운 동적 배열을 만들고 요소를 복사합니다. 이렇게 하면 원본과 복사본이 별도의 메모리 위치를 갖게 됩니다.

이러한 지침을 따르면 메모리 관련 오류를 방지하는 올바른 복사 생성자를 만들 수 있습니다.

이 설명이 복사 생성자의 개념과 그 중요성을 명확하게 해주기를 바랍니다.

C++ Copy constructors (beginner-friendly tutorial + practical examples)
C++ Copy constructors (beginner-friendly tutorial + practical examples)
  • 2023.04.19
  • www.youtube.com
This is an OOP tutorial where I'll teach you about copy constructors in C++. After watching this video, you'll learn what is the purpose of copy constructors...
 

직접 코딩하세요! Tetris - 처음부터 프로그래밍(빠르고 간단한 C++)



직접 코딩하세요! Tetris - 처음부터 프로그래밍(빠르고 간단한 C++)

안녕하세요! 오늘 우리는 우리만의 테트리스 버전을 만드는 흥미진진한 여정을 시작할 것입니다. 코딩에 대해 알아보기 전에 우리가 만들게 될 내용을 살짝 보여드리겠습니다.

보시다시피 화면에 고전적인 Tetris 모양이 있습니다. 코딩의 힘 덕분에 이러한 모양을 회전할 수 있습니다. 이 게임에는 조각이 서로 올바르게 상호 작용하는지 확인하는 충돌 감지 기능이 포함되어 있습니다. 임의의 조각을 전략적으로 배치하여 라인을 완성하면 사라지고 그에 따라 점수가 올라갑니다. 그러나 조심하지 않고 조각 더미가 맨 위에 도달하면 게임이 종료됩니다.

이제 그래픽이 아닌 게임 엔진에 집중하는 이유가 궁금할 것입니다. 미학은 중요하고 플레이어의 관심을 끌 수 있지만 게임의 진정한 본질은 게임 플레이, 논리, 규칙, 도전 등을 구현하는 부분인 엔진에 있습니다. 그래픽 엔진은 나중에 언제든지 추가할 수 있으며 아티스트를 불러와 게임을 아름답게 꾸밀 수도 있습니다. 그러나 게임 개발을 진정으로 이해하려면 게임 엔진 구축의 기본 사항을 파악해야 합니다.

시작하려면 게임 자산이 필요합니다. Tetris에서 이러한 자산은 "tetromino 블록"이라고 하는 다양한 모양입니다. 이러한 모양을 문자열로 저장하면 시각화하기가 더 쉬워집니다. Tetris에는 7가지 일반적인 모양이 사용되며 빈 공간에는 마침표(.), 모양 자체에는 대문자 X와 같은 문자를 사용하여 표시합니다. 이러한 문자를 배열하여 모양을 시각적으로 나타내는 문자열을 만듭니다.

이제 다차원 배열을 사용하여 2D 모양을 나타내는 대신 1차원 배열을 사용하고 간단한 수학적 계산을 사용하여 인덱스를 조작합니다. 이 접근 방식을 사용하면 모양의 회전 및 반사를 보다 효율적으로 처리할 수 있습니다. 수식을 사용하여 각 회전에 대한 적절한 인덱스를 결정합니다. 예를 들어 X 좌표에 4를 곱하면 원하는 90도 회전 인덱스를 얻을 수 있습니다. 이 기술을 사용하면 가능한 모든 모양 변형에 대해 별도의 자산을 만들지 않아도 됩니다.

테트로미노 블록 외에도 경기장도 필요합니다. 너비와 높이에 대한 변수를 사용하여 필드의 크기를 정의합니다. 이 경우에는 너비가 12셀이고 높이가 18셀인 필드 크기를 사용합니다. 경기장의 요소를 나타내기 위해 서명되지 않은 문자 배열을 사용합니다. 각 셀에는 빈 공간, 모양의 일부 또는 경계 벽과 같은 내용을 나타내는 값이 지정됩니다.

게임을 시각화하기 위해 명령 프롬프트를 화면 버퍼로 활용합니다. 명령 프롬프트 창의 크기로 배열을 생성하여 게임 요소를 그릴 수 있습니다. 특정 캐릭터를 사용하여 모양, 빈 공간 및 경계 벽과 같은 게임의 다양한 요소를 나타냅니다. 그런 다음 명령 프롬프트 화면에 어레이의 내용을 표시합니다.

이제 게임 루프에 대해 이야기해 봅시다. 게임 루프는 게임 요소의 순서를 제어하므로 모든 게임 엔진의 중요한 구성 요소입니다. Tetris의 경우 게임 루프는 타이밍, 사용자 입력, 게임 로직 및 출력 렌더링을 처리합니다.

서로 다른 시스템에서 일관된 게임 플레이를 보장하려면 타이밍이 중요합니다. 우리는 게임이 컴퓨터의 속도에 관계없이 같은 속도로 실행되기를 원합니다. 타이밍 메커니즘을 사용하여 모양이 떨어지고 게임이 업데이트되는 속도를 제어합니다.

다음으로 사용자 입력을 처리합니다. 간단한 명령줄 버전의 Tetris를 만들고 있으므로 이벤트 기반 입력에 의존하지 않습니다. 대신 화살표 키 또는 기타 지정된 키와 같은 기본 사용자 입력을 처리합니다.

이 코드에서는 게임에 대한 키보드 입력 처리를 구현하며 특히 왼쪽 화살표, 오른쪽 화살표, 아래쪽 화살표 및 게임 조각 회전을 위한 "Z" 키의 네 가지 키에 중점을 둡니다.

사용자가 누른 키의 현재 상태를 얻기 위해 "비동기 키 상태 가져오기" 기능을 활용합니다. 키 상태를 나타내는 배열을 반복함으로써 각 키가 현재 눌려 있는지 여부를 확인할 수 있습니다. 이 함수는 부울 값을 반환합니다. 키가 눌리면 true이고 그렇지 않으면 false입니다. 특정 키의 상태를 확인하기 위해 각 키에 대한 가상 키 코드를 나타내는 상수 문자열 표현식을 사용합니다.

이 4개 키의 상태를 확인하여 각 키를 눌렀는지 여부를 나타내는 true 또는 false 값을 포함하는 배열을 만들 수 있습니다. 이것은 프로세스를 단순화하고 키의 현재 상태를 나타내는 배열을 제공합니다.

왼쪽 키를 예로 들어 보겠습니다. 사용자가 왼쪽 키를 누르면 게임 조각이 현재 위치의 왼쪽에 들어갈 수 있는지 확인해야 합니다. 이를 위해 현재 조각, 회전 및 현재 X 위치를 고려하는 "조각 맞추기"라는 기능을 활용합니다. 현재 X 위치에서 1을 빼면 조각이 왼쪽에 맞는지 확인할 수 있습니다. 맞으면 그에 따라 현재 X 위치를 업데이트합니다.

마찬가지로 오른쪽 키의 경우 유사한 검사를 수행하여 조각이 현재 위치의 오른쪽에 맞을 수 있는지 확인합니다. 가능한 경우 그에 따라 현재 X 위치를 업데이트합니다.

사용자가 아래쪽 키를 누르면 조각의 수직 이동을 처리해야 합니다. 경기장의 왼쪽 상단 위치는 항상 (0, 0)이므로 Y 위치를 증가시켜 조각을 아래로 이동할 수 있습니다. 우리는 조각을 왼쪽, 오른쪽 또는 아래로 이동하여 경기장 경계 내에서 유지하는지 확인하기 위해 검사를 수행합니다.

코드를 최적화하기 위해 중첩된 if 문을 논리 AND 연산자로 바꿀 수 있습니다. 이는 코드를 단순화하고 간결성을 향상시킵니다. 또한 조건문을 활용하여 조건 결과에 따라 현재 X 위치에서 1을 더하거나 빼서 코드를 더욱 간소화합니다. 사용자가 "Z" 키를 누를 때 조각의 회전을 처리할 때도 동일한 최적화가 적용됩니다.

Tetris에서 게임은 중력을 시뮬레이션하면서 주기적으로 조각을 몇 십 분의 1초마다 강제로 아래로 이동시킵니다. 우리는 게임 틱 카운터를 활용하여 이를 달성합니다. 처음에는 조각이 천천히 떨어지지만 게임이 진행됨에 따라 각 조각이 떨어지는 사이의 시간을 줄여 게임을 더 빠르고 어렵게 만듭니다. 게임 틱을 누적하고 현재 속도와 비교하여 조각을 강제로 내려야 할 시점을 결정합니다. 이로 인해 조각이 일정한 간격으로 떨어지며 게임에서 중력 효과가 발생합니다.

현재 조각을 경기장에 고정하기 위해 tetromino 배열의 값으로 필드 배열을 업데이트합니다. 이는 tetromino 배열의 각 요소를 반복하고 필드 배열에서 해당 위치를 업데이트하여 수행됩니다. tetromino 배열의 요소가 "X"인 경우 필드 배열의 해당 값을 1씩 증가시킵니다. 이렇게 하면 현재 조각이 차지하는 위치가 표시됩니다.

경기장에 선이 형성되면 플레이어에게 시각적으로 표시하고 싶습니다. 선을 특수 마커로 교체하거나 다른 시각적 효과를 수행하여 선의 완성을 나타냅니다.

완료된 라인을 시각적으로 표시한 후 라인을 지우고 그에 따라 경기장을 업데이트해야 합니다. 맨 아래부터 시작하여 경기장의 각 행을 반복하고 행이 채워졌는지 확인합니다. 행이 채워지면 모든 요소를 0으로 설정하여 행을 지웁니다. 그런 다음 그 위의 모든 행을 한 위치 아래로 이동하여 지워진 행을 채웁니다. 채워진 행이 모두 지워질 때까지 이 프로세스가 반복됩니다.

플레이어의 점수를 추적하기 위해 라인이 지워질 때마다 점수를 증가시킵니다. 점수는 클리어한 라인 수를 기반으로 하거나 게임 디자인에 따라 더 복잡한 점수 시스템을 가질 수 있습니다.

게임 종료 조건을 처리하려면 현재 조각이 경기장 상단의 초기 위치에 맞는지 확인해야 합니다. 맞지 않으면 게임이 종료되고 게임 루프를 중지하거나 필요한 게임 종료 작업을 트리거합니다.

마지막으로 게임 루프를 처리하기 위해 정기적으로 업데이트 기능을 트리거하는 타이머 또는 유사한 메커니즘을 활용합니다. 이 함수는 사용자 입력 확인, 조각 아래로 이동, 현재 게임 상태에 따라 필요한 작업 수행 등 게임 상태 업데이트를 처리합니다.

요약하면 이 코드는 특히 화살표 키 및 "Z" 키와 같은 키에 중점을 둔 게임용 키보드 입력 처리를 구현합니다. 이 키의 상태를 확인하고, 이에 따라 게임 조각의 움직임을 처리하고, 중력 및 조각 잠금을 구현하고, 완성된 라인을 지우고, 경기장을 업데이트하고, 플레이어의 점수를 추적하고, 게임 종료 조건을 확인합니다. 게임 루프는 게임 상태가 일정한 간격으로 업데이트되도록 하여 동적이고 상호 작용하는 게임 플레이 환경을 만듭니다.

Code-It-Yourself! Tetris - Programming from Scratch (Quick and Simple C++)
Code-It-Yourself! Tetris - Programming from Scratch (Quick and Simple C++)
  • 2017.04.03
  • www.youtube.com
I mentioned in an earlier video that programming a Tetris clone is a good way to get going with programming as it makes you think about algorithms. Putting m...
 

초보자를 위한 C++ 전체 과정(10시간 동안 C++ 배우기)


초보자를 위한 C++ 전체 과정(10시간 동안 C++ 배우기)

전체 C++ 프로그래밍 과정입니다. 초보자에서 고급 프로그래밍 수준으로 안내하는 것을 목표로 하는 많은 강의로 구성되어 있습니다. 이후 강의는 이전 강의의 지식이 필요하기 때문에 전체 동영상을 시청하는 것이 좋습니다.

내용물:
00:00:00
– 과정의 목표
00:01:31 – 과정을 시작하기 전에 수행
00:02:41
– C++ 소개(C++가 무엇인가요? C++로 어떤 종류의 앱을 만들 수 있나요? C++이 만들어진 이유는 무엇인가요?)
00:06:39 – 소스 코드, 개체 코드, 컴파일러, 알고리즘이란 무엇입니까?
00:08:42
- Visual Studio 2019 – 첫 번째 프로젝트 만들기(설정)
00:11:32 - Visual Studio 2019 기본 설명 및 첫 번째 "Hello World" 프로그램
00:29:51
- 변수 소개
00:44:36 – 변수 명명 규칙
00:52:15
– C++의 데이터 유형 및 sizeof 연산자 사용 방법
01:01:58
- 데이터 유형 오버플로
01:05:00 – ASCII 테이블이란?
01:09:50
- 단어를 ASCII로 암호화하는 간단하고 재미있는 프로그램
01:18:12 - If/else 문(홀수/짝수를 확인하는 프로그램 빌드 + 순서도 설명)
01:35:52 - 중첩된 if/else 문(삼각형 + 순서도의 유형을 결정하는 프로그램 빌드)
01:55:50 - C++의 연산자(산술, 관계, 논리, 대입 연산자)
02:21:02 - 세 번째 변수가 있거나 없는 두 변수의 값 교환
02:29:20 – BMI 계산기 애플리케이션 + 순서도 빌드
02:49:55 - 삼항(조건부) 연산자(추측 게임 앱 빌드)
03:01:00 - Switch/case 문 파트 1(계산기 앱 빌드)
03:26:36 - Switch/case 문 2부(한 달의 일수를 확인하는 프로그램 빌드)
03:39:35
- While 루프 파트 1 + 무한 루프 예제
03:53:39 - While 루프 파트 2(숫자의 자릿수를 세는 프로그램 빌드)
04:12:39
- While 루프 파트 3(숫자의 자리를 뒤집는 프로그램 빌드)
04:25:25
- Do while 루프(PIN 확인 프로그램)
04:39:09 – While 루프와 Do While 루프의 차이점은 무엇입니까
04:40:34 - For 루프(숫자의 계승 계산 프로그램 빌드)
04:58:12 – 중첩 루프(중첩 do while 루프 및 for 루프)
05:11:08 – 중첩 for 루프(구구단 앱 빌드)
05:21:45 – 직사각형 모양을 그리는 프로그램
05:33:05 – 삼각형 및 역삼각형 도형 그리기 프로그램
05:44:30 – 기능 소개
05:56:02 – 매개변수/인수가 있는 함수(다중 및 기본값)
06:11:42
- 함수 반환 문(소수 확인 프로그램 빌드)
06:37:39
- 함수 과부하
06:48:06 – ATM 앱 구축
07:03:03 - 일반 함수 및 템플릿
07:14:30 – 재귀 및 재귀 함수
07:30:01
– OOP 소개, 클래스와 객체란?
07:42:06
– OOP 생성자 및 클래스 메서드
07:57:10 – OOP 캡슐화, GIT: https://github.com/TrueCodeBeauty/EncapsulationCpp
08:08:31 – OOP 상속, GIT: https://github.com/TrueCodeBeauty/InheritanceCpp
08:24:59 – OOP 다형성, GIT: https://github.com/TrueCodeBeauty/PolymorphismCpp
08:40:04 - 포인터 소개
08:51:14 - 무효 포인터
09:06:27 - 포인터 및 배열
09:19:18
- 포인터를 사용하여 함수에서 여러 값 반환
09:34:50
- 동적 배열, 런타임 시 배열 생성/변경
09:48:35 – 다차원 동적 배열, 2차원 배열
10:07:00
- PVS Studio를 사용하여 코드 오류 감지
10:17:19 - 메모리 누수 설명
10:26:25 - 블로퍼
C++ FULL COURSE For Beginners (Learn C++ in 10 hours)
C++ FULL COURSE For Beginners (Learn C++ in 10 hours)
  • 2021.01.11
  • www.youtube.com
This is a full C++ programming course. It consists of many lectures whose goal is to take you from beginner to advanced programming level.I recommend watchin...
 

C++ 함수(2020) - 함수란?


C++ 함수(2020) - 함수란? 프로그래밍 자습서

내 채널의 첫 번째 비디오에 오신 것을 환영합니다! C++ 초보자라면 C++로 작업하기 위해 이해하고 알아야 할 중요한 개념을 찾을 수 있는 초보자를 위한 C++ 재생 목록을 확인하십시오. 이번 영상에서는 C++뿐만 아니라 대부분의 프로그래밍 언어에서 좋은 프로그래머가 되기 위해 꼭 필요한 C++ 함수에 대해 알아봅니다.

시작하기 전에 제 채널을 구독하고 다음 동영상을 게시할 때 알림을 받으려면 벨 아이콘을 클릭하세요. 비하인드 콘텐츠와 개발자의 삶이 실제로 어떻게 보이는지 보고 싶다면 내 계정 "CodeBeauty"를 통해 Instagram과 Twitter에서 나를 팔로우하세요.

이제 기능에 대한 주제로 들어가 보겠습니다. 함수는 특정 문제를 해결하거나 특정 작업을 수행하기 위해 함께 그룹화되는 코드 블록입니다. 함수 내의 코드는 함수가 호출되거나 호출될 때만 실행됩니다. 모든 C++ 프로그램에는 기본 함수인 함수가 하나 이상 포함되어 있습니다. 프로그램 실행은 메인 함수의 첫 번째 줄에서 시작하여 마지막 줄에서 또는 return 문을 만나면 끝납니다(이 과정의 뒷부분에서 return 문을 다룰 것입니다).

자신만의 함수를 만들려면 알아야 할 몇 가지 사항이 있습니다. 먼저 함수의 반환 유형을 지정해야 합니다. 지금은 함수가 아무 것도 반환하지 않는다는 의미인 "void" 반환 유형을 사용합니다. 다음으로 함수에 이름을 지정합니다. 괄호 안에는 함수가 받는 모든 인수 또는 매개 변수를 정의할 수 있습니다. 이 경우 인수가 없으므로 괄호가 비어 있습니다. 마지막으로 중괄호 안에 함수 본문을 정의합니다.

이 예제에서는 반환 형식이 무효이고 인수가 없는 "function"이라는 함수를 만들었습니다. 함수 본문 내부에서 "cout" 문을 사용하여 "Hello from function"을 표시하고 endline을 추가합니다. 그러나 단순히 함수를 생성한다고 해서 해당 코드가 실행되는 것은 아닙니다. 함수를 실행하려면 함수를 호출하거나 호출해야 합니다. 우리의 경우, 이름 뒤에 괄호를 입력하여 기본 함수의 "cout" 문 다음에 함수를 호출합니다.

프로그램을 컴파일하고 실행하면 "Hello from main"과 "Hello from function"이 출력되는 것을 볼 수 있습니다. 이는 main 함수가 먼저 실행되고 우리가 만든 함수가 호출될 때 실행되기 때문입니다.

코드를 더 읽기 쉽게 만들려면 함수를 별도로 선언하고 정의하는 것이 좋습니다. 선언에는 반환 유형, 함수 이름 및 모든 매개 변수가 포함되며 주 함수 앞에 위치해야 합니다. 함수 본문을 포함하는 정의는 기본 함수 뒤에 배치됩니다. 이렇게 하면 다른 사람이 코드를 읽고 있는 경우 이해해야 하는 특정 기능으로 쉽게 이동할 수 있습니다.

함수를 사용하면 코드를 재사용할 수 있습니다. 동일한 코드를 여러 번 작성하는 대신 함수 내에서 한 번 작성하고 필요할 때마다 해당 함수를 호출할 수 있습니다. 이 방법은 중복을 줄이고 코드를 더 쉽게 관리할 수 있도록 도와줍니다.

향후 비디오에서 기능을 더 자세히 살펴보겠습니다. 내 채널을 구독하고 알림을 활성화하여 향후 콘텐츠에 대한 업데이트를 유지하는 것을 잊지 마십시오. 시청해주셔서 감사하고 다음 영상에서 뵙겠습니다!

C++ FUNCTIONS (2020) - What are functions? PROGRAMMING TUTORIAL
C++ FUNCTIONS (2020) - What are functions? PROGRAMMING TUTORIAL
  • 2020.06.11
  • www.youtube.com
This is the introduction video of the "C++ functions" course. In this video, I'm explaining what are C++ functions, how functions are created, when they're u...
 

C++ 함수(2020) - 함수 매개변수/인수란 무엇입니까(다중, 기본값) 프로그래밍 자습서


C++ 함수(2020) - 함수 매개변수/인수란 무엇입니까(다중, 기본값) 프로그래밍 자습서

여러분, 안녕하세요! 내 채널에 다시 오신 것을 환영합니다. 당신이 C++의 초보자라면, 당신이 여기 있다는 것을 기쁘게 생각합니다. 오늘의 주제로 들어가기 전에 초보자를 위한 C++ 재생 목록을 확인해 보시기 바랍니다. 필수 개념을 다루고 연습에 도움이 되는 많은 연습 문제가 포함되어 있습니다. 또한 제 채널을 구독하고 벨 아이콘을 클릭하여 새 영상이 공개될 때마다 알림을 받는 것도 잊지 마세요. 또한 내 소셜 미디어 프로필인 CodeBeauty Instagram 및 Twitter에서 저를 팔로우하여 개발자의 삶을 엿볼 수 있습니다. 자, 더 이상 고민하지 않고 오늘의 수업으로 넘어가겠습니다.

이 비디오에서는 C++ 함수 매개변수 또는 인수에 대해 논의하려고 합니다. 그렇다면 매개변수와 인수는 정확히 무엇입니까? C++ 함수에 대한 이전 비디오를 보지 않았다면 확인하는 것이 좋습니다(링크 제공). 경우에 따라 함수는 특정 작업을 수행하기 위해 특정 값이나 변수를 받아야 합니다. 이러한 값 또는 변수를 매개변수라고 합니다.

이제 C++에서 매개변수를 받는 함수를 만드는 방법을 알아보겠습니다. 이를 위해 반환 유형이 void인 함수를 정의합니다. 함수 이름을 "introduceMe"로 지정하겠습니다. 괄호 안에 함수가 받을 매개변수를 지정합니다. 함수의 본문은 중괄호로 묶입니다.

매개변수를 정의하려면 먼저 매개변수의 유형과 그 이름을 명시합니다. 우리의 경우 사용자 이름을 함수에 전달하려고 하므로 매개변수는 문자열 유형이 됩니다. 매개변수 이름을 "name"으로 지정합니다. 그러면 이 함수는 "My name is" 뒤에 제공된 이름을 인쇄하여 사용자를 소개합니다.

함수를 호출하거나 호출하려면 "introduceMe"라는 이름을 사용하면 됩니다. 함수에는 인수(이름 매개 변수)가 필요하므로 함수를 호출할 때 값을 전달해야 합니다. 이 경우 "Selena"라는 이름을 인수로 전달하겠습니다.

프로그램을 실행하면 함수는 제공된 이름으로 사용자를 성공적으로 소개합니다. 예상대로 "My name is Selena"가 인쇄됩니다.

여러 사용자를 소개하려면 다른 인수를 사용하여 함수를 다시 호출할 수 있습니다. 예를 들어 호출 줄을 복사하고 "Anna"와 같은 다른 이름을 전달할 수 있습니다. 그러면 기능이 그에 따라 두 사용자를 소개합니다.

이제 함수에 여러 인수를 전달하는 방법을 살펴보겠습니다. 이를 위해 매개변수를 쉼표로 구분합니다. name 매개변수 외에도 두 개의 매개변수인 city(문자열 유형)와 age(int 유형)를 추가해 보겠습니다. 사용자의 도시와 나이에 대한 정보도 포함하도록 기능을 수정할 것입니다.

함수 내에서 C++의 "cout"을 사용하여 이름과 함께 사용자의 도시와 나이를 출력합니다. 다음과 같이 출력을 구성합니다. "나는 [도시]에서 왔고 나는 [나이]살입니다."

함수를 호출할 때 이름, 도시 및 연령의 세 가지 매개 변수 모두에 대한 값을 전달합니다. 예를 들어 함수를 호출하고 "Selena"를 이름으로, "Moscow"를 도시로, 25를 나이로 전달할 수 있습니다. 이 기능은 제공된 모든 정보를 사용자에게 소개합니다.

두 번째 사용자에 대해 프로세스를 반복할 수 있습니다. "Anna"를 이름으로, "New York"을 도시로, 27을 나이로 전달하겠습니다. 프로그램을 실행하면 두 사용자가 각각의 세부 정보와 함께 소개된 것을 볼 수 있습니다.

다음으로 기본 매개변수를 살펴보겠습니다. 경우에 따라 매개변수의 기본값을 정의해야 할 수 있습니다. 함수를 호출할 때 해당 매개변수에 대한 인수가 제공되지 않으면 이 값이 사용됩니다.

기본값을 지정하기 위해 매개변수 선언 중에 지정합니다. 예를 들어 "나이" 매개변수의 기본값을 18로 설정해 보겠습니다. 이제 나이를 제공하지 않고 함수를 호출하면 기본값을 가정합니다.

이름과 도시만 전달하고 나이는 생략하여 세 번째 사용자에 대한 함수를 호출해 보겠습니다. 예상대로 이 함수는 기본 연령 값인 18세로 사용자를 소개합니다.

이것으로 C++ 함수 매개변수 및 인수에 대한 논의를 마무리합니다. 이 비디오가 도움이 되었기를 바라며 C++에서 함수 매개변수로 작업하는 방법을 확실하게 이해하셨기를 바랍니다. 질문이 있거나 추가 설명이 필요한 경우 아래에 의견을 남겨 주시면 기꺼이 도와 드리겠습니다. 더 많은 C++ 자습서를 시청하고 이 비디오가 유용하다고 생각되면 좋아요를 누르고 공유하는 것을 잊지 마십시오. 시청해 주셔서 감사합니다. 행복한 코딩하세요!

C++ FUNCTIONS (2020) - What is function parameter/argument (multiple, default) PROGRAMMING TUTORIAL
C++ FUNCTIONS (2020) - What is function parameter/argument (multiple, default) PROGRAMMING TUTORIAL
  • 2020.06.15
  • www.youtube.com
In this video of the "C++ functions" course, I'm explaining what are function parameters/arguments, how to pass arguments to a function, and how to invoke a ...
 

C++ 함수(2020) - 함수 반환 문, 소수 확인 방법


C++ FUNCTIONS (2020) - Functions return 문, 소수를 확인하는 방법 프로그래밍 튜토리얼

안녕하세요 여러분, 제 채널에 오신 것을 환영합니다. 이번 영상에서는 C++에서 반환문과 함수의 반환형에 대해 토론하고자 합니다. 초보자라면 C++ 학습을 시작하는 데 도움이 되는 유용한 예제를 제공하는 초보자용 C++ 과정을 확인하십시오. 내 채널을 구독하고 벨 알림을 클릭하여 새 동영상에 대한 업데이트를 받는 것을 잊지 마세요. 또한 개발자가 되어 개발자의 삶에 대한 통찰력을 얻는 데 관심이 있다면 Instagram과 Twitter에서 @truecodebeauty(동영상 설명의 링크)를 팔로우하세요. 더 이상 고민하지 않고 오늘의 주제로 들어가 봅시다.

함수의 반환 유형은 int, float, bool, char, double 또는 사용자 정의 데이터 유형을 포함한 모든 데이터 유형이 될 수 있습니다. 함수가 아무 것도 반환하지 않음을 나타내는 void일 수도 있습니다. 이전 비디오에서 함수는 특정 작업을 수행하도록 설계된 코드 블록이라고 설명했습니다. 함수는 값을 반환하는 함수와 반환하지 않는 함수의 두 가지 유형으로 분류할 수 있습니다.

값을 반환하지 않는 함수는 일반적으로 사용자에게 메뉴를 표시하는 것과 같은 특정 작업을 수행합니다. 반면에 값을 반환하는 함수는 계산이나 작업을 수행하고 결과를 제공하는 데 사용됩니다. 함수는 하나의 값만 반환할 수 있으며 반환 문을 만나면 함수 실행이 중지된다는 점에 유의해야 합니다.

함수의 중요성을 설명하기 위해 함수를 사용하지 않는 예를 살펴보겠습니다. 숫자가 소수인지 여부를 결정하는 프로그램을 만들 것입니다. 소수는 1과 자기 자신으로만 나눌 수 있습니다. 먼저 사용자에게 숫자를 입력하도록 요청합니다. 그런 다음 2와 사용자가 입력한 숫자에서 1을 뺀 값 사이의 모든 숫자를 반복합니다. 숫자가 이러한 값으로 나누어지면 소수가 아닙니다. 그렇지 않으면 프라임입니다. 마지막으로 결과를 보여드리겠습니다.

이제 함수를 사용하여 프로그램을 리팩토링하여 코드를 더 읽기 쉽고 재사용할 수 있도록 만들어 보겠습니다. 정수 인수를 취하고 숫자가 소수인지 여부를 나타내는 부울 값을 반환하는 "isPrimeNumber"라는 함수를 만듭니다. 함수 내에서 이전과 동일한 논리를 구현하여 분할 가능성을 확인하고 그에 따라 플래그를 설정합니다. 마지막으로 플래그 값을 반환합니다.

함수를 사용하여 소수를 결정하는 논리를 캡슐화하여 코드를 더 쉽게 이해하고 재사용할 수 있습니다.

C++ FUNCTIONS (2020) - Functions return statement, How to check prime number PROGRAMMING TUTORIAL
C++ FUNCTIONS (2020) - Functions return statement, How to check prime number PROGRAMMING TUTORIAL
  • 2020.06.29
  • www.youtube.com
In this video of the "C++ functions" course, I'm explaining what is the function return type. I'll show you how to return value from a function on an example...
 

C++ 함수(2020) - 함수 오버로딩이란 무엇입니까? 프로그래밍 자습서


C++ 함수(2020) - 함수 오버로딩이란 무엇입니까? 프로그래밍 자습서

여러분, 안녕하세요! 내 채널에 다시 오신 것을 환영합니다. 오늘 비디오에서는 C++의 함수 오버로딩 개념에 대해 자세히 살펴보겠습니다. 함수 오버로딩을 사용하면 이름은 같지만 매개 변수가 다른 여러 함수를 만들 수 있습니다. 이제 함수 오버로딩이 무엇이며 어떻게 작동하는지 살펴보겠습니다.

시작하려면 Visual Studio를 열고 "sum"이라는 함수를 만듭니다. 정수가 될 함수의 반환 유형을 정의하는 것으로 시작하겠습니다. 반환 유형에 익숙하지 않은 경우 주제에 대한 내 비디오를 시청하는 것이 좋습니다(링크 제공). 다음으로 함수 이름을 "sum"으로 지정하고 두 개의 매개 변수를 선언합니다. 두 매개변수 모두 정수 유형이며 이름을 각각 "a"와 "b"로 지정합니다.

이제 "sum"이라는 이름은 같지만 이번에는 반환 유형이 double인 다른 함수를 만들어 보겠습니다. "a"와 "b"라는 double 유형의 두 매개변수를 선언합니다.

또한 반환 형식이 float인 "sum"이라는 세 번째 함수를 만들어 보겠습니다. 이번에는 3개의 매개변수를 전달할 것이며 모두 float 유형이 될 것입니다. 각각 "a", "b" 및 "c"라고 이름을 지정합니다.

함수를 선언한 후 정의가 누락되었음을 나타내는 밑줄이 그어져 있음을 알 수 있습니다. 각 기능에 대한 정의를 제공하여 진행하겠습니다. 정수를 반환하는 첫 번째 함수부터 시작하겠습니다.

중괄호 안에 int 유형의 "result"라는 변수를 정의합니다. 두 매개변수의 합을 나타내는 "a + b" 값을 할당합니다. 마지막으로 "return" 키워드를 사용하여 함수에서 "result" 값을 반환합니다.

또는 별도의 변수를 만드는 대신 변수에 할당하지 않고 "a"와 "b"의 합계를 직접 반환할 수 있습니다. 이것은 코드를 더 짧고 읽기 쉽게 만들 수 있습니다.

다음으로 double을 반환하는 두 번째 함수를 정의해 보겠습니다. 선언을 복사하고 중괄호를 추가한 다음 내부에 "return" 키워드와 "a + b"를 사용합니다. 매개변수가 double 유형이므로 합계는 배정밀도를 사용하여 수행됩니다.

이제 float를 반환하는 세 번째 함수를 정의해 보겠습니다. 선언을 복사하고 중괄호를 추가한 다음 내부에 "return" 키워드와 "a + b + c"를 사용합니다. 다시 말하지만, 모든 매개변수는 float 유형이므로 합계가 그에 따라 수행됩니다.

함수를 테스트하기 위해 "main" 함수에서 호출합니다. "cout" 문을 사용하여 결과를 표시합니다. 첫 번째 함수인 "sum"을 호출하고 4와 3과 같은 두 개의 정수 값을 전달하는 것으로 시작하겠습니다. "cout"을 사용하여 결과를 출력하고 줄을 끝냅니다.

프로그램을 실행하면 4와 3을 더한 결과 7이 나올 것으로 예상할 수 있습니다. 프로그램이 성공적으로 실행되면 첫 번째 함수를 테스트한 것입니다.

다음으로 "sum"을 호출하고 4.4 및 3.3과 같은 두 개의 double 값을 전달하여 두 번째 함수를 테스트해 보겠습니다. 다시 "cout"을 사용하여 결과를 출력하고 줄을 끝냅니다.

프로그램을 실행하면 4.4와 3.3을 더한 결과 7.7이 나와야 합니다. 출력이 정확하면 두 번째 기능을 성공적으로 테스트한 것입니다.

마지막으로 "sum"을 호출하고 4.4, 3.3 및 2.2와 같은 세 개의 부동 소수점 값을 전달하여 세 번째 함수를 테스트해 보겠습니다. "cout"을 사용하여 결과를 출력하고 줄을 끝냅니다.

프로그램을 실행하면 4.4, 3.3 및 2.2를 더한 결과가 표시되어야 하며, 이는 올바른 합계여야 합니다. 필요한 경우 계산기를 사용하여 출력을 확인하십시오.

요약하면 여기서 우리가 시연한 것은 함수 오버로딩입니다. "sum"이라는 이름은 같지만 매개변수와 반환 유형이 다른 세 개의 함수를 만들었습니다. 첫 번째 함수는 두 개의 정수를 사용하고 두 번째는 두 개의 double을 사용하며 세 번째는 세 개의 부동 소수점을 사용합니다. 이러한 함수를 호출하면 컴파일러는 제공된 인수를 기반으로 호출할 적절한 함수를 결정합니다.

함수 오버로딩을 사용하면 유사한 작업을 수행하는 함수에 동일한 이름을 사용하여 더 간결하고 읽기 쉬운 코드를 작성할 수 있습니다. 각 변형에 대해 다른 이름으로 별도의 함수를 만들 필요가 없습니다.

이제 함수 오버로딩의 개념과 그것이 C++에서 어떻게 유용할 수 있는지 이해하셨기를 바랍니다. 이 영상이 마음에 드셨다면 제 채널을 구독하시고 벨 아이콘을 클릭하시면 앞으로 나올 영상에 대한 알림을 받아보실 수 있습니다. 내 다른 소셜 미디어 플랫폼(설명에 제공된 링크)에서 나를 팔로우할 수도 있습니다.

시청해주셔서 감사하고 다음 영상에서 뵙겠습니다. 안녕!

C++ FUNCTIONS (2020) - What is function overloading? PROGRAMMING TUTORIAL
C++ FUNCTIONS (2020) - What is function overloading? PROGRAMMING TUTORIAL
  • 2020.07.17
  • www.youtube.com
Function overloading is the ability to create multiple functions that have the same name but different implementations. In this video of the C++ programming ...