>백엔드 개발 >C++ >C++ 템플릿 상속을 사용하는 방법은 무엇입니까?

C++ 템플릿 상속을 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-06 10:33:17797검색

C++ 템플릿 상속을 통해 템플릿 파생 클래스는 기본 클래스 템플릿의 코드와 기능을 재사용할 수 있습니다. 이는 동일한 핵심 로직이지만 서로 다른 특정 동작을 사용하는 클래스를 만드는 데 적합합니다. 템플릿 상속 구문은 다음과 같습니다: template class Derived: public Base 예: template class Base { }; public Base; 실제 사례: 파생 클래스 Derived를 생성하고, 기본 클래스 Base의 계산 기능을 상속하고, 현재 개수를 인쇄하는 printCount 메서드를 추가했습니다.

C++ 템플릿 상속을 사용하는 방법은 무엇입니까?

C++ 템플릿 상속

템플릿 상속을 사용하면 파생 클래스에서 기본 클래스 템플릿의 코드와 기능을 재사용할 수 있습니다. 이는 동일한 핵심 논리를 공유하지만 특정 동작이 다른 클래스를 만드는 데 유용합니다.

Syntax

template<typename T>
class Base {
  // 基类模板代码
};

template<typename T>
class Derived : public Base<T> {
  // 派生类模板代码
};

Example

간단한 카운터를 구현하는 다음 Base 템플릿 클래스가 있다고 가정합니다. Base 模板类,它实现了简单的计数器:

template<typename T>
class Base {
public:
    Base() : count(0) {}
    void increment() { ++count; }
    T getCount() const { return count; }
    
private:
    T count;
};

现在,我们想创建一个 Derived 类,它继承了 Base 的计数功能,但还增加了打印当前计数的附加方法:

template<typename T>
class Derived : public Base<T> {
public:
    void printCount() const { cout << "Count: " << getCount() << endl; }
};

实战案例

以下是使用 C++ 模板继承的实战案例:

#include <iostream>

int main() {
    Derived<int> counter;
    counter.increment();
    counter.increment();
    counter.printCount(); // 输出: Count: 2
    
    return 0;
}

在这个示例中,我们创建了一个 C++ 模板继承的 Derived 类实例,它提供了 Base 类的计数功能,并增加了 printCountrrreee

이제 Derived code> 클래스는 <code>Base의 계산 기능을 상속하지만 현재 계산을 인쇄하는 추가 메서드도 추가합니다. 🎜rrreee🎜🎜실용 사례🎜🎜🎜다음은 다음을 사용하는 실제 사례입니다. C++ 템플릿 상속:🎜 rrreee🎜이 예에서는 Base 클래스의 계산 기능을 제공하고 printCount를 추가하는 C++ 템플릿 상속 <code>Derived 클래스 인스턴스를 만듭니다. 메소드는 현재 카운트를 인쇄합니다. 🎜

위 내용은 C++ 템플릿 상속을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.