>백엔드 개발 >C++ >C++ 템플릿 클래스를 정의하는 방법은 무엇입니까?

C++ 템플릿 클래스를 정의하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-05 14:28:01495검색

템플릿 클래스를 사용하면 개발자는 템플릿 클래스를 정의하고 꺾쇠 괄호 안에 템플릿 매개변수로 포함하고 인스턴스화할 때 실제 유형을 제공하기만 하면 됩니다. 데이터 유형.

C++ 템플릿 클래스를 정의하는 방법은 무엇입니까?

C++ 템플릿 클래스 정의 방법

Template은 각 유형에 대해 별도의 클래스나 함수를 작성하지 않고도 재사용 가능한 코드를 만들 수 있는 C++의 강력한 도구입니다. 이 기사에서는 C++ 템플릿 클래스를 정의하는 방법을 살펴보겠습니다.

Syntax

템플릿 클래스를 정의하는 구문은 다음과 같습니다.

template<typename T>
class ClassName {
    // 模板类的代码
};

여기서 T는 유형 매개변수입니다. 이는 템플릿 클래스가 모든 유형과 함께 사용될 수 있음을 의미합니다. T 是一个类型参数,它表示模板类可以与任何类型一起使用。

实例

让我们创建一个模板类,它可以存储和打印任何类型的数据:

template<typename T>
class ValueHolder {
public:
    ValueHolder(T value) : value(value) {}

    void printValue() {
        std::cout << value << std::endl;
    }
private:
    T value;
};

现在,我们可以在代码中使用 ValueHolder 模板类:

int main() {
    ValueHolder<int> intHolder(42);
    intHolder.printValue();  // 输出:42

    ValueHolder<std::string> stringHolder("Hello, world!");
    stringHolder.printValue();  // 输出:Hello, world!

    return 0;
}

在这里,我们创建了两个 ValueHolder 实例:一个用于 int 类型,另一个用于 std::string

Instance

모든 유형의 데이터를 저장하고 인쇄할 수 있는 템플릿 클래스를 만들어 보겠습니다.
    rrreee
  • 이제 코드에서 ValueHolder 템플릿 클래스를 사용할 수 있습니다.
  • rrreee
  • 여기서, 두 개의 ValueHolder 인스턴스를 생성합니다. 하나는 int 유형용이고 다른 하나는 std::string 유형용입니다. 두 인스턴스 모두 해당 유형의 값을 저장하고 인쇄할 수 있습니다.
  • 템플릿 클래스의 제한사항
🎜🎜🎜템플릿 클래스는 템플릿 매개변수가 변수나 상수가 아닌 유형일 수만 허용합니다. 🎜🎜템플릿 매개변수는 템플릿 클래스 범위 내에서 사용해야 합니다. 🎜🎜템플릿 클래스의 모든 인스턴스에는 동일한 유형 매개변수가 있어야 합니다. 🎜🎜

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

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