>백엔드 개발 >C++ >C++에서 일반 클래스를 구현하는 방법은 무엇입니까?

C++에서 일반 클래스를 구현하는 방법은 무엇입니까?

王林
王林원래의
2024-06-06 13:13:57594검색

C++에서 일반 클래스 구현: 지정된 유형에 대한 템플릿, 자리 표시자를 사용합니다. 유형 매개변수를 지정하여 일반 클래스의 인스턴스를 만듭니다. 일반 클래스를 사용하면 동일한 코드를 다양한 데이터 유형에 사용할 수 있습니다. 실제 적용: 일반 StudentArray 클래스를 사용하여 학생 이름과 같은 다양한 유형의 데이터를 저장하고 처리합니다.

C++에서 일반 클래스를 구현하는 방법은 무엇입니까?

C++에서 일반 클래스를 구현하는 방법

일반 클래스를 사용하면 수정 없이 유형 매개변수를 기반으로 다양한 데이터 유형을 사용할 수 있는 코드를 만들 수 있습니다. C++에서 일반 클래스를 구현하는 방법은 다음과 같습니다.

#include <iostream>

template <typename T>
class GenericClass {
public:
    GenericClass(T value) : val(value) {}
    void print() {
        std::cout << "Value: " << val << std::endl;
    }
private:
    T val;
};

이 예에서 GenericClass 是一个泛型类,T는 유형에 대한 자리 표시자입니다. 유형 매개변수를 지정하여 일반 클래스의 인스턴스를 생성할 수 있습니다. 예:

GenericClass<int> intClass(10);
GenericClass<std::string> strClass("Hello");

intClass.print();  // 输出:“Value:10”
strClass.print();  // 输出:“Value:Hello”

실제 사례:

학생 이름이 포함된 배열을 생각해 보세요. 일반 클래스를 사용하여 다양한 유형의 데이터를 저장하고 처리할 수 있습니다. 예를 들면 다음과 같습니다.

template <typename T>
class StudentArray {
public:
    StudentArray(size_t size) : arr(new T[size]) {}
    void add(T name, int index) {
        arr[index] = name;
    }
    void print() {
        for (size_t i = 0; i < size(); ++i) {
            std::cout << "Student " << (i + 1) << ": " << arr[i] << std::endl;
        }
    }
    size_t size() {
        return size_;
    }
private:
    T* arr;
    size_t size_;
};

int main() {
    StudentArray<std::string> names(5);

    names.add("John", 0);
    names.add("Jane", 1);
    names.add("Peter", 2);
    names.add("Susan", 3);
    names.add("Thomas", 4);

    names.print();
}

이 코드는 5개의 문자열을 포함하는 일반 배열을 만듭니다. 학생 이름을 추가하고 인쇄하는 기능이 있습니다.

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

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