개인 재정 C ++에서 구조 템플릿을 작성하는 방법 - 더미

C ++에서 구조 템플릿을 작성하는 방법 - 더미

비디오: 내가 쓰는 C++1x: 가변인자 템플릿(variadic template) 2024

비디오: 내가 쓰는 C++1x: 가변인자 템플릿(variadic template) 2024
Anonim

구조 템플릿에는 특정 유형에 의존하지 않는 데이터 저장소 만들기와 같은 많은 흥미로운 용도가 있습니다. 여기에있는 StructureTemplate 예제는 이러한 용도 중 하나를 보여줍니다.

#include using namespace std; 템플릿 구조체 볼륨 {T height; T 너비; T 길이; 볼륨 () {높이 = 0; 폭 = 0; T getvolume (T H, T W, T L) {height = H; 길이 = 0; 폭 = W; 길이 = L; 리턴 높이 * 너비 * 길이;}}; int main () {먼저 볼륨; cout << "첫 번째 볼륨:"<< 처음. getvolume () << endl; 먼저. 높이 = 2; 먼저. 폭 = 3; 먼저. 길이 = 4; cout << "첫 번째 볼륨:"<< 처음. getvolume () << endl; 볼륨 초; cout << "두 번째 볼륨:"<< 초. getvolume (2.1, 3. 2, 4. 3) << endl; cout << "height:"<< 초. 높이 << endl; cout << ""width: "<< 초. 너비 << endl; cout << "길이:"<< 초. 길이 << endl; return 0;}

이 경우 구조에는 코드가 볼륨을 결정하는 데 사용할 수있는 높이, 너비 및 길이 데이터 값이 들어 있습니다. 구조체에는 값을 초기화하는 생성자가 포함되어 있으므로 누군가가 구조체를 초기화하지 않고 getvolume ()을 호출하더라도 아무런 문제가 발생하지 않습니다.

구조는 각 데이터 값에 독립적으로 액세스 할 수있게합니다. 필요에 따라 설정하거나 가져올 수 있습니다.

getvolume () 함수가 오버로드되었습니다. 입력 값의 유무에 관계없이 호출 할 수 있습니다. main ()의 코드는 구조를 철저히 테스트합니다. 이 예제의 결과는 다음과 같습니다.

첫 번째 볼륨: 0 첫 번째 볼륨: 24 두 번째 볼륨: 28. 896 높이: 2. 1 너비: 3. 2 길이: 4. 3

또 다른 흥미있는 목적. C ++ 표준에서는 typedef 템플릿을 만들 수 없다고 말합니다. 예를 들어, 다음 코드는 컴파일하려고하면 오류가 발생합니다.

템플릿 typedef map MyDef;

Code: Blocks에서이 코드를 컴파일하려고하면 다음 오류가 표시됩니다.

오류: 'typedef'템플릿 선언

그러나 구조 템플릿 내에 typedef를 정의 할 수 있습니다. 여기에있는 StructureTemplate2 예제 코드는 방법을 보여줍니다.

#include #include using namespace std; 템플릿 구조체 MyDef {typedef map Type;}; int main () {MyDef:: 유형 결혼; 결혼 ["Tom"] = "Suzy"; 결혼 ["Harry"] = "Harriet"; cout << marriages ["Tom"] << endl; cout << marriages ["Harry"] << endl; return 0;}

이 예는 struct, MyDef 내에 typedef를 두어 C ++ 제한을 극복합니다. 동일한 구조체는 많은 수의 typedef 항목을 포함 할 수 있습니다.

이 방식으로 typedef를 사용하면 맵 작업이 더 쉬워집니다.걱정할 필요가있는 것은 값 유형입니다. 키 유형은 이미 문자열로 정의되어 있습니다.

C ++에서 구조 템플릿을 작성하는 방법 - 더미

편집자의 선택

왜 IOS 응용 프로그램을 개발합니까? - 인형

왜 IOS 응용 프로그램을 개발합니까? - 인형

IOS 앱을 개발해야하는 이유는 무엇입니까? 넌 할 수 있으니까. 왜냐하면 그들은 재미 있기 때문입니다. 그리고 시간이 왔기 때문에. iOS 앱은 계속해서 파열되고 있으며, 많은 개발자들이이 앱을 성공적으로 사용하고 있습니다. iOS 앱을 개발하는 것은 시간 투자가 거의없이 몇 년 동안 자신의 경력에서 가장 재미있을 수 있습니다.

Windows Phone 7 애플리케이션 개발 Dummies 치트 시트 - 인형

Windows Phone 7 애플리케이션 개발 Dummies 치트 시트 - 인형

Windows Phone 7에서 실행할 응용 프로그램에 대한 새로운 아이디어는 Microsoft 웹 사이트에서 무료 Windows Phone Developer Tools를 다운로드하여 시작하십시오. 이 프로세스는 다운로드를 시작하기 전에 PC에서 가지고있는 것을 살펴 봅니다. 이미 더 나은 버전이있는 경우를 대비하여 ...

Android 용으로 개발해야하는 이유는 무엇입니까? - 인형

Android 용으로 개발해야하는 이유는 무엇입니까? - 인형

진짜 질문은 "안드로이드를 개발하지 않겠습니까? "전 세계 수백만 명의 사용자가 앱을 사용할 수있게하려는 경우 또는 작성 및 테스트를 마친 후 앱을 게시하려는 경우 또는 개방형 플랫폼에서 개발하려는 경우 답변을 얻을 수 있습니다. 그러나 당신이 ...

편집자의 선택

TestDriveController를 가지고 나면 iOS 앱 - 더미에 액션을 추가하는 방법

TestDriveController를 가지고 나면 iOS 앱 - 더미에 액션을 추가하는 방법

IOS 앱에 표시되는 인터페이스는 Assistant Editor에서 자동으로 표시하거나 점프 바를 사용하여 탐색 할 수 있으므로 작업을 작성하는 실제 비즈니스는 매우 간단합니다. Interface Builder 편집기에서 관심있는 요소 (Test ...

편집자의 선택

Word 2010에서 테마를 수정하거나 만드는 방법 - dummy

Word 2010에서 테마를 수정하거나 만드는 방법 - dummy

Word 2010에서는 허용되지 않습니다. 자신 만의 테마를 처음부터 만들 수 있지만 기존 테마를 수정하여 나만의 맞춤 테마를 만들 수 있습니다. 기존 테마 색 및 글꼴을 수정하여 시작하십시오. 사용자 정의 색 테마를 작성하려면 다음을 수행하십시오. 색상 → 새 테마 색 작성을 선택하십시오. 새 테마 색 만들기 대화 상자를 사용하여 선택하고 ...

Word 2016에서 표 셀을 병합하는 방법 -

Word 2016에서 표 셀을 병합하는 방법 -

두 개의 셀을 결합하는 완전히 합리적인 방법 Word 2016 표를 하나 또는 두 개의 셀로 나눠서 표 그리기 도구를 사용하는 것입니다. 천국은 다른 방식으로 세포를 합병하거나 쪼개기로 결심한다면 자비를 베푸십시오. 두 개의 셀을 결합하려면 줄을 지우십시오.

Word 2007에서 기존 템플릿을 수정하는 방법 - 인형

Word 2007에서 기존 템플릿을 수정하는 방법 - 인형

두 가지 방법 : 템플릿에서 직접 변경하거나 템플릿을 기반으로하는 문서를 변경하여 간접적으로 수정할 수 있습니다. 두 번째 방법은 스타일 변경과 같은 템플릿 변경 만 적용합니다. 기존 Word 수정 ...