C++ 프로그래밍의 주요 목적은 C 프로그래밍 언어에 객체 지향 개념을 도입하는 것입니다.
객체 지향 프로그래밍은 다음과 같은 많은 개념을 제공하는 패러다임입니다. 상속, 데이터 바인딩, 다형성 등
모든 것이 객체로 표현되는 프로그래밍 패러다임은 진정한 객체지향 프로그래밍 언어로 알려져 있습니다. 잡담 최초의 진정한 객체 지향 프로그래밍 언어로 간주됩니다.
OOP(객체 지향 프로그래밍 시스템)
물체 펜, 의자, 테이블 등과 같은 실제 단어 개체를 의미합니다. 객체 지향 프로그래밍 클래스와 객체를 사용하여 프로그램을 설계하는 방법론 또는 패러다임입니다. 다음과 같은 몇 가지 개념을 제공하여 소프트웨어 개발 및 유지 관리를 단순화합니다.
설정 메뉴 안드로이드
- 물체
- 수업
- 계승
- 다형성
- 추출
- 캡슐화
물체
상태와 동작이 있는 모든 엔터티를 객체라고 합니다. 예를 들면 의자, 펜, 테이블, 키보드, 자전거 등입니다. 이는 물리적일 수도 있고 논리적일 수도 있습니다.
수업
객체 수집 클래스라고 합니다. 논리적 엔터티입니다.
C++의 클래스는 객체 지향 프로그래밍으로 이어지는 기본 요소입니다. 사용자 정의 데이터 유형의 데이터 멤버 및 멤버 함수에 액세스하고 사용하려면 클래스 인스턴스를 생성해야 합니다. 객체의 클래스는 객체의 청사진 역할을 합니다. 자동차 등급을 예로 들어보겠습니다. 서로 다른 자동차에 서로 다른 이름과 브랜드가 사용되더라도 모두 바퀴 4개, 제한 속도, 주행 거리 등 몇 가지 공통된 특성을 갖습니다. 이 경우 자동차 클래스는 다음과 같이 표시됩니다. 바퀴, 속도 제한, 주행거리.
계승
하나의 객체가 상위 객체의 모든 속성과 동작을 획득하는 경우 즉, 상속으로 알려져 있습니다. 코드 재사용성을 제공합니다. 런타임 다형성을 달성하는 데 사용됩니다.
- 하위 클래스 - 하위 클래스 또는 파생 클래스는 다른 클래스로부터 속성을 받는 클래스를 나타냅니다.
- 슈퍼 클래스 - '기본 클래스' 또는 '슈퍼 클래스'라는 용어는 하위 클래스가 해당 속성을 상속받는 클래스를 나타냅니다.
- 재사용성 - 결과적으로 새 클래스를 만들고 싶지만 기존 클래스에 이미 필요한 코드 일부가 포함되어 있는 경우 상속 덕분에 이전 클래스에서 새 클래스를 생성할 수 있습니다. 이를 통해 기존 클래스의 필드와 메서드를 활용할 수 있습니다.
다형성
언제 하나의 작업이 다른 방식으로 수행됨 즉 다형성으로 알려져 있습니다. 예: 고객을 다르게 설득하기 위해, 무언가를 그리기 위해. 모양이나 직사각형 등
상황에 따라 작업이 다르게 동작할 수 있습니다. 작업에 활용되는 데이터 유형에 따라 동작이 결정됩니다.
추출
내부 세부정보 숨기기 및 기능 표시 추상화로 알려져 있다. 데이터 추상화는 구현이나 배경 정보를 숨기고 꼭 필요한 정보만 외부에 노출시키는 과정이다. 예를 들어 전화 통화, 내부 처리는 알 수 없다.
C++에서는 추상화를 달성하기 위해 추상 클래스와 인터페이스를 사용합니다.
캡슐화
코드와 데이터를 단일 단위로 바인딩(또는 래핑)하는 것을 캡슐화라고 합니다. 예: 캡슐은 다양한 약품으로 포장되어 있습니다.
자바 업그레이드 어떻게 해?
캡슐화는 일반적으로 관련 정보 및 데이터를 단일 엔터티로 그룹화하는 것으로 이해됩니다. 캡슐화는 객체 지향 프로그래밍에서 데이터와 데이터와 함께 작동하는 기능을 함께 묶는 프로세스입니다. 캡슐화의 실제 사례를 살펴보세요. 회사에는 영업부, 재무부, 회계부 등 다양한 부서가 있습니다. 모든 금융 거래는 금융 부문에서 처리되며 모든 금융 데이터 기록도 유지됩니다. 마찬가지로 판매부서는 판매와 관련된 모든 업무를 담당하며, 각 판매에 대한 기록을 관리합니다. 이제 어떤 이유로든 재무 담당자가 특정 월의 매출에 대한 모든 정보를 요구하는 시나리오가 발생할 수 있습니다. '영업 부문'이라는 포괄적인 용어 아래에는 영업 부문의 데이터에 영향을 미칠 수 있는 모든 직원이 함께 그룹화됩니다. 데이터 추상화 또는 은폐는 캡슐화의 또 다른 부작용입니다. 캡슐화가 데이터를 숨기는 것과 같은 방식입니다. 앞서 언급한 예에서 다른 영역에서는 판매, 재무, 계정 등 모든 섹션의 데이터에 액세스할 수 없습니다.
동적 바인딩 - 동적 바인딩에서는 함수 호출에 대한 응답으로 실행될 코드에 관해 런타임에 결정이 내려집니다. 이를 위해 C++에서는 가상 함수를 지원합니다.
절차 지향 프로그래밍 언어에 비해 OOP의 장점
- OOP를 사용하면 절차 지향 프로그래밍 언어에서와 같이 프로젝트 규모가 커짐에 따라 코드가 커지면 관리하기가 쉽지 않은 반면 개발 및 유지 관리가 더 쉬워집니다.
- OOP는 데이터 숨김 기능을 제공하는 반면, 절차 지향 프로그래밍 언어에서는 전역 데이터에 어디에서나 액세스할 수 있습니다.
- OOP는 실제 이벤트를 훨씬 더 효과적으로 시뮬레이션하는 기능을 제공합니다. 객체 지향 프로그래밍 언어를 사용하면 실제 단어 문제에 대한 솔루션을 제공할 수 있습니다.
C++에서 죄송합니다가 필요한 이유는 무엇입니까?
초기 프로그래밍 방법에는 여러 가지 단점이 있었고 성능도 좋지 않았습니다. 이 접근 방식은 절차 지향 프로그래밍과 마찬가지로 프로그램 내에서 코드를 다시 재사용할 수 없고 전역 데이터 액세스에 어려움이 있기 때문에 실제 문제를 효과적으로 해결할 수 없습니다.
클래스와 개체를 사용하면 개체 지향 프로그래밍을 통해 코드 유지 관리가 간단해집니다. 상속을 통해 코드 재사용이 가능하므로 동일한 코드를 반복적으로 작성할 필요가 없으므로 프로그램이 더 간단해집니다. 데이터 숨기기는 캡슐화 및 추상화와 같은 아이디어로도 제공됩니다.
삽입 정렬 알고리즘
C++가 부분 루프인 이유는 무엇입니까?
C 언어의 객체 지향 기능은 C++ 언어 구성의 주요 동기였습니다.
C++ 프로그래밍 언어는 클래스, 객체, 상속, 캡슐화, 추상화 및 다형성을 포함한 OOP 개념을 지원한다는 사실에도 불구하고 부분 객체 지향 프로그래밍 언어로 분류됩니다.
1) main 함수는 C++에서 항상 클래스 외부에 있어야 하며 필수입니다. 이는 클래스와 객체 없이 작업을 수행할 수 있고 애플리케이션에 단일 기본 기능을 가질 수 있음을 의미합니다.
이 경우에는 객체로 표현되는데, 이는 처음으로 Pure OOP를 위반한 것입니다.
2) 전역 변수는 프로그램 내의 다른 개체에서 액세스할 수 있고 프로그램 외부에서 정의되는 C++ 프로그래밍 언어의 기능입니다. 여기서 캡슐화가 깨졌습니다. C++에서는 클래스와 객체에 대한 캡슐화를 권장하지만 전역 변수에 대해서는 이를 무시합니다.
과부하
다형성에는 오버로딩이라는 하위 집합도 있습니다. 기존 연산자나 함수가 새로운 데이터 유형에 대해 강제로 작동하게 되면 오버로드되었다고 합니다.
결론
C++의 OOPS 개념에 대한 이 과정을 읽은 후 객체 지향 프로그래밍의 필요성, C++ OOP가 무엇인지, 다형성, 상속, 캡슐화 등과 같은 OOP의 기본 사항을 이해하게 될 것입니다. 다형성 및 상속의 사례와 함께 C++ OOP의 이점에 대해서도 배웠습니다.