Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 추상화

<시간/>

추상화는 관련 정보만 외부 세계에 제공하고 배경 세부 정보를 숨기는 것을 포함합니다. 프로그래밍을 위한 인터페이스와 구현의 분리에 의존합니다.

클래스는 C++에서 추상화를 제공합니다. 외부 세계가 데이터를 조작하고 나머지 클래스 구조를 자체적으로 유지하기 위한 공용 메서드를 제공합니다. 따라서 사용자는 클래스가 내부적으로 어떻게 구현되었는지 몰라도 필요에 따라 클래스를 사용할 수 있습니다.

C++에서 클래스를 사용하여 추상화를 구현하는 프로그램은 다음과 같습니다.

예시

#include <iostream>
using namespace std;
class Abstraction {
   private:
   int length, breadth;
   public:
   void setValues(int l, int b) {
      length = l;
      breadth = b;
   }
   void calcArea() {
      cout<<"Length = " << length << endl;
      cout<<"Breadth = " << breadth << endl;
      cout<<"Area = " << length*breadth << endl;
   }
};
int main() {
   Abstraction obj;
   obj.setValues(5, 20);
   obj.calcArea();
   return 0;
}

출력

Length = 5
Breadth = 20
Area = 100

위의 프로그램에서 Abstraction 클래스의 길이와 너비는 개인 변수입니다. 이러한 변수를 초기화하고 길이와 호흡을 곱하여 면적을 계산하는 공용 함수가 있습니다. 따라서 이 클래스는 추상화를 보여줍니다. 이에 대한 코드 스니펫은 다음과 같습니다.

class Abstraction {
   private:
   int length, breadth;
   public:
   void setValues(int l, int b) {
      length = l;
      breadth = b;
   }
   void calcArea() {
      cout<<"Length = " << length << endl;
      cout<<"Breadth = " << breadth << endl;
      cout<<"Area = " << length*breadth << endl;
   }
};

main() 함수에서 먼저 추상화 유형의 객체가 정의됩니다. 그런 다음 setValues() 함수가 값 5와 20으로 호출됩니다. 마지막으로 이러한 값과 면적은 calcArea() 함수를 사용하여 표시됩니다. 이에 대한 코드 스니펫은 다음과 같습니다.

Abstraction obj;
obj.setValues(5, 20);
obj.calcArea();