8.1(수) C++ - template 파라미터

from Study/C++ 2007/08/02 16:43 view 19278

#include <iostream>

#include <vector>

using namespace std;

 

// template 파라미터의종류

// 1. type

// 2. 상수( 정수와포인터상수만가능) 파라미터.

// 3. template temlpate 파라미터- template 이름을 넘긴다???

 

// vector는 디폴트 인자가3 개가 있으므로 넘기기 힘들다.

// 그래서 새롭게 만든 template를 넘겨보자!! VECTOR

template<typename T> class VECTOR

{

};


template
<template<typename> class A, typename T> class Stack

{

        A<T> v;

public:

};

 

int main()

{

        Stack<VECTOR, int> s;

 

        return 0;

}


//////////////////////////////////////////////////////////////////// 

template <typename T, int n, template<typename> class A> class Stack

{

        A<T> v;                // 결국 vector<int> v

        T buf[n];              // 배열첨자에 템플릿인자 상수는 가능하다.

};

 

void main()

{

        vector<int> a;

        vector b;

 

        Stack<int, 10, vector> s;

 

        int n = 10;

        //Stack<int, n> s2;    // error

}


//////////////////////////////////////////////////////////////////// 

// 클래스template 2 

typedef vector<vector<int> > Matrix;

 

void main()

{

        //vector<vector<int> > m(3, 3);

        Matrix m(3, 3);

       

        m[0][0] = 10;

       

        vector<int> v(10, 3);

 

        v[0] = 10;

}

 

//////////////////////////////////////////////////////////////////// 
template
<typename T> class Stack

{

};

void main()

{

        Stack<int> s;

        Stack<Stack<int> > s2; // >> 와 혼동 되지 않도록 해야 한다.

}

 

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다