매트랩 클래스 예제

(Last Updated On: August 2, 2019)

함수 오버로드와 템플릿의 차이점은 무엇입니까? 함수 오버로드와 템플릿 모두 OOP의 다형성 기능의 예입니다. 함수 오버로드는 여러 함수가 유사한 작업을 수행할 때 사용되며, 여러 함수가 동일한 작업을 수행할 때 템플릿이 사용됩니다. 이봐 알렉스 장 클래스 코드 및 헤더 파일 당신은 클래스 아래에 정의 할 때 정상 함수는 하나의 정의 규칙의 대상이지만 템플릿 함수는 또한 세 가지 파일 접근 방식에서 우리가 명시적으로 클래스를 인스턴스화하지만 말했다 이유가 아니라고 말했다 형식이 사용자 정의 데이터 형식인 경우 이를 처리하는 방법은 무엇입니까? 또한 벡터와 배열은 세 개의 파일로 설명한 것과 동일한 방식으로 구현되는데, 각 프로그램에 대해 template.cpp를 유지 관리해야 한다고 말했기 때문에 비형식 매개 변수를 템플릿에 전달할 수 있습니까? 형식이 아닌 인수를 템플릿에 전달할 수 있습니다. 비유형 매개변수는 주로 템플릿의 특정 인스턴스에 대해 최대 값 또는 최소 값 또는 기타 상수 값을 지정하는 데 사용됩니다. 비 형식 매개 변수에 대 한 주의 해야 합니다., 그들은 const. 컴파일러는 컴파일타임에 비 형식 매개 변수의 값을 알고 있어야 합니다. 컴파일러는 컴파일 타임에 지정된 비 형식 값에 대한 함수 / 클래스를 만들어야하기 때문입니다. 아래 프로그램에서 10000 또는 25를 변수로 바꾸면 컴파일러 오류가 발생합니다. 이쪽을 봐 주세요.

… 이제 예상대로 작동합니다 (이제 클래스 외부에서이 함수의 정의를 유지할 수 있습니다). 다른 단어에서, 컴파일러는 친구로 오버로드 연산자에 대한 하나 이상의 (또는 그 이상) 템플릿 매개 변수를 정의해야합니다 가장 쉬운 방법은 단순히 헤더 파일에 모든 템플릿 클래스 코드를 넣어하는 것입니다 (이 경우, Array.cpp의 내용을 Array.h에 넣어 )을 참조하십시오. 이렇게 하면 헤더를 #include 모든 템플릿 코드가 한 곳에 배치됩니다. 이 솔루션의 장점은 간단하다는 것입니다. 여기서 단점은 템플릿 클래스가 여러 곳에서 사용되는 경우 컴파일 및 링크 시간을 늘릴 수있는 템플릿 클래스의 많은 로컬 복사본이 있다는 것입니다 (링커는 중복 정의를 제거해야하므로 팽창해서는 안됩니다. 실행 할 수 있습니다). 컴파일 또는 링크 시간이 문제가 되기 시작하지 않는 한 이것이 바람직한 솔루션입니다. 첫째로이 모든 분수와 함께 일하고 잘 작동했습니다. 내 복잡한 클래스를 작성하는 것은 템플릿 방식으로이 컨테이너를 다시 작성하는 이유였습니다.

그 시간 동안, 나는 이미 클래스 선언과 정의를 분할했습니다, 그리고 분명히, 우리가 템플릿 클래스를 커버 한 지금과 같은 관련 무언가를 컴파일 한 후, 당신은 std::vector 지금 의미 무엇을 이해해야합니다 – std::vector 실제로 템플릿입니다 클래스, int는 템플릿에 대한 형식 매개 변수입니다! 표준 라이브러리에는 사용할 수 있는 미리 정의된 템플릿 클래스가 가득합니다. 이 에 대한 설명은 이후 장에서 다룹니다. 템플릿 클래스는 컨테이너가 다양한 데이터 형식에서 작업하도록 하는 것이 매우 바람직하며, 템플릿을 사용하면 코드를 복제하지 않고도 컨테이너 클래스를 구현하는 데 이상적입니다.

Rick

After many years of being a full time freelance writer, and a long time resident of this state, I've decided to turn my full attention toward California by exploring all that it has to offer. My goal is to inspire you to get out there and explore this amazing state. Please follow my adventures and news content by visiting Calexplornia daily or clicking on one of my Social Media accounts below.