반응형
안녕하세요. 훈츠입니다. 금일은 Template 키워드를 이용하여 클래스 객체가 포인터인 경우와 생성자에 적용 하는 방법에 대해 포스팅 합니다.
템플리트 클래스 객체 활용(template class)
- 클래스 밖에서 포인터 선언하는 형식 (포인터는 항상 해제를 해줘야 하며,
- 템플리트 클래스 안에 생성자가 있는 경우
- 템프리트 클래스에 typedef 를 적용 하는 경우
- 템플리트 클래스 함수에 초기값을 주는 경우
모두 일반 클래스에 적용되는 내용과 같으나, 템플리트 자체가 익숙하지 않아 다음 예제를 보시면서 익숙해지시면 사용하시는데 도움이 될것 같습니다.
예제1 코드 (템플리트 클래스 포인터 )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
template<class T> class A
{
private:
T m_Var;
public:
void Print();
void Set(T var);
T Get();
};
template <class T> void A<T>::Set(T var) {
m_Var = var;
}
template <class T> void A<T>::Print() {
cout << m_Var << endl;
}
template <class T> T A<T>::Get() {
return m_Var;
}
int main()
{
A<int>* pTr = new A<int>;
A<int>* pTrArray = new A<int>[3];
pTr->Set(10);
pTr->Print();
pTrArray[0].Set(100);
pTrArray[1].Set(200);
pTrArray[2].Set(300);
pTrArray[0].Print();
pTrArray[1].Print();
pTrArray[2].Print();
delete pTr;
delete[]pTrArray;
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
일반 클래스 혹은 변수를 포인터 선언하는것과 완전히 동일합니다.
예제2 코드 ( 생성자에 매개변수가 있고, typeDef 와 초기값 예제)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
//Hoons Blog---https://rain2002kr.tistory.com------------------------------------------------------------------코드///
template<class T> class A
{
private:
T m_Var;
public:
// 초기값 및 매개변수
A(T var = 20) :m_Var(var) {}
void Print();
void Set(T var);
T Get();
};
template <class T> void A<T>::Set(T var) {
m_Var = var;
}
template <class T> void A<T>::Print() {
cout <<m_Var <<endl;
}
template <class T> T A<T>::Get() {
return m_Var;
}
//typeDef 선언
typedef A<int> intA;
int main()
{
A<int>* pTr = new A<int>(90);
pTr->Set(10);
pTr->Print();
//typedef 예시
intA typeDef(30);
//typedef 초기값 없는 예시
intA typeDefNoinitValue;
delete pTr;
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
typeDef 는 C 언어내용과 동일하며, 익숙하지 않으시면 다음 포스팅을 참고 하세요.
https://rain2002kr.tistory.com/153?category=382972
'컴퓨터 언어 > C++' 카테고리의 다른 글
[C++] C++ 26일차 파일 입출력1 (0) | 2020.05.05 |
---|---|
[C++] C++ 25일차 STL 스탠다드 탬플리트 라이브러리 (0) | 2020.05.04 |
[C++] C++ 21일차 friend 변수와 friend 클래스 (0) | 2020.04.25 |
[C++] C++ 20일차 static(정적) 멤버변수와 static(정적) 함수 (0) | 2020.04.24 |
[C++] C++ 19일차 static(정적) 클래스와 지역 정적(static)클래스 1강 (0) | 2020.04.23 |