1. 템플릿
.h
#pragma once
#include<iostream>
template<typename T1,typename T2> //1.
class Test01
{
private:
T1 t1;
T2 t2;
public:
Test01(T1 t11, T2 t22); //2.
T1 GetTest01T1() { return t1; }
T2 GetTest01T2() { return t2; }
};
template<typename T1,typename T2>
inline Test01(T1,T2)::Test01(T1 t11,T2 t22):t1(t11),t2(t22)//3.
{
};
1. 템플릿 선언
2. 생성자 선언
3. 생성자 정의 및 매개변수의 값으로 t1과 t2를 초기화
inline : 클래스 내부 함수에 사용 가능한 함수. 짧은 함수에 사용하면 실행속도가 빨라진다함
.cpp
#include "Test01.h"
1. 템플릿을 만들때 헤더에 선언과 정의를 모두 끝냈다.
2. cpp에다 정의했더니 실행할때 애로사항이 꽃폈다.
main
#include<iostream>
#include<string>
#include"Test01"
using namespace std;
void main()
{
string str1,str2;
cin >> str1 >> str2; //1.
Test01<string,string> t01(str1,str2); //2.
cout << t01.GetTest01T1() + t01.GetTest01T2() << endl; //3.
}
1. 생성자를 위해 string 변수 2개를 만들고 cin으로 값을 초기화
2. Test01<string,string> 의 경우 Test01<typename T1,typename T2>처럼 매개변수를 2개를 선언해서
두개의 값의 타입을 따로 정해줌. 1개면 1개만 해도 됨.
3. getter로 입력받은 변수의 값을 출력
'C++' 카테고리의 다른 글
16.맵(map) (0) | 2021.05.25 |
---|---|
13.getter, setter (0) | 2021.05.23 |
12. 클래스의 상속 , 오버로딩과 오버라이딩 (0) | 2021.05.21 |
11. 클래스, 접근제어자 ,생성자 소멸자 (0) | 2021.05.20 |
10. 문자열 함수 (0) | 2021.05.20 |