추상 클래스와 인터페이스는 추상화를 달성하고 좋은 디자인 원칙을 홍보하기위한 C의 강력한 도구입니다. 이를 통해 모든 구현 세부 정보를 지정하지 않고 관련 클래스 그룹에 대한 공통 청사진을 정의 할 수 있습니다. 각각을 사용하는 방법을 분류합시다.
초록 수업 :
C에서, abstract
키워드를 사용하여 추상 클래스가 선언됩니다 (또는 하나 이상의 순수한 가상 함수가 있음). 순수한 가상 함수는 서명으로 선언되지만 구현은 없습니다 (예 : virtual void myFunction() = 0;
). 추상 클래스는 직접적으로 인스턴스화 할 수 없습니다. 가상 기능에 대한 구체적인 구현을 제공하는 다른 클래스의 기본 클래스 역할을합니다.
<code class="c ">#include <iostream> class Shape { public: virtual double getArea() = 0; // Pure virtual function, making Shape abstract virtual void draw() = 0; // Another pure virtual function virtual ~Shape() = default; // Virtual destructor is crucial for proper cleanup of polymorphic objects }; class Circle : public Shape { private: double radius; public: Circle(double r) : radius(r) {} double getArea() override { return 3.14159 * radius * radius; } void draw() override { std::cout </iostream></code>
인터페이스 (순수한 추상 클래스 사용) :
C에는 Java 또는 C#과 같은 방식으로 인터페이스가 없습니다. 대신, 순수한 추상 클래스 (순수한 가상 함수 만있는 클래스)를 사용하여 유사한 기능을 달성합니다. 이러한 클래스가 구현 해야하는 계약을 시행합니다.
<code class="c ">#include <iostream> class Drawable { public: virtual void draw() = 0; virtual ~Drawable() = default; }; class Printable { public: virtual void print() = 0; virtual ~Printable() = default; }; class MyObject : public Drawable, public Printable { public: void draw() override { std::cout </iostream></code>
주요 차이점은 의도와 기능에 있습니다.
선택은 설계 목표에 따라 다릅니다.
다음과 같은 초록 수업을 선택하십시오.
다음과 같은 경우 인터페이스 (순수한 초록 클래스)를 선택하십시오.
추상 클래스 및 인터페이스는 다음을 통해 코드 유지 관리 및 재사용 성을 크게 향상시킵니다.
추상 클래스와 인터페이스 (순수한 추상 클래스)를주의 깊게 선택하고 일관되게 적용하면 강력하고 관리 가능하며 재사용 가능한 C 코드를 만들 수 있습니다. 다형성 객체를 삭제할 때 메모리 누출을 피하기 위해 가상 파괴자는 추상 클래스에서 중요합니다.
위 내용은 설계 및 추상화를 위해 C의 추상 클래스와 인터페이스를 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!