[kossa] c++ programming - 14th study - template

16

Upload: seok-joon-yun

Post on 28-Jul-2015

21 views

Category:

Software


0 download

TRANSCRIPT

Page 1: [KOSSA] C++ Programming - 14th Study - template
Page 2: [KOSSA] C++ Programming - 14th Study - template
Page 3: [KOSSA] C++ Programming - 14th Study - template

3

http://ko.wikipedia.org/wiki/제네릭_프로그래밍

Page 5: [KOSSA] C++ Programming - 14th Study - template
Page 6: [KOSSA] C++ Programming - 14th Study - template

6

#include <iostream>

int Max(int a, int b){

return a > b ? a : b;}

void main(){

int nA = 300;int nB = 400;int nC = Max(nA, nB);std::cout << "Max (300 , 400) = " << nC << std::endl;

float fD = 15.1f;float fE = 15.3f;float fF = Max(fD, fE);std::cout << "Max (15.1 , 15.3) = " << fF << std::endl;

}

Page 7: [KOSSA] C++ Programming - 14th Study - template

7

float Max(float a, float b){

return a > b ? a : b;}

Page 8: [KOSSA] C++ Programming - 14th Study - template

8

Page 9: [KOSSA] C++ Programming - 14th Study - template

9

template <typename T>T Max(T a, T b){

return a > b ? a : b;}

int 를 넣으면

모든 T 가 다 int

int Max(int a, int b){

return a > b ? a : b;}

Page 10: [KOSSA] C++ Programming - 14th Study - template

10

template <typename T>T Max(T a, T b){

return a > b ? a : b;}

void main(){

int nA = 300;int nB = 400;int nC = Max(nA, nB);std::cout << "Max (300 , 400) = " << nC << std::endl;

float fD = 15.1f;float fE = 15.3f;float fF = Max(fD, fE);std::cout << "Max (15.1 , 15.3) = " << fF << std::endl;

}

Page 11: [KOSSA] C++ Programming - 14th Study - template

11

template <typename T1, typename T2 >T1 Max(T1 a, T2 b){

return a > b ? a : b;}

Page 12: [KOSSA] C++ Programming - 14th Study - template

12

template <typename T, int VAL>T AddValue(T& value){

return value + VAL;}

여기에 500을 넣으면

Page 13: [KOSSA] C++ Programming - 14th Study - template

13

typename T

template <typename T>T Max(T a, T b){

return a > b ? a : b;}

float Max(float a, float b){

return a > b ? a : b;}

int Max(int a, int b){

return a > b ? a : b;}

Page 14: [KOSSA] C++ Programming - 14th Study - template
Page 15: [KOSSA] C++ Programming - 14th Study - template

15

class Data{

int data;public:

Data(int d) { data = d; }

void SetData(int d) { data = d; }

int GetData() { return data; }};

Page 16: [KOSSA] C++ Programming - 14th Study - template

16

template <typename T>class Data{

T data;public:

Data(T d) { data = d; }

void SetData(T d) { data = d; }

T GetData() { return data; }};