.


:




:

































 

 

 

 


- , , .




 

, - :

 

 

template< typename T = int >

class Test

{

//...

};

 

- . :

 

 

1. . , , , :

 

 

//

Stack (int _size = 10);

 

 

, :

 

 

//

Stack< T > & operator = (const Stack< T >& _s);

 

 

2. , , . , :

 

 

template< typename T >

Stack< T >::Stack (int _size)

: m_size(_size)

{

m_pData = new T[ m_size ];

m_pTop = m_pData;

}

 

 

3. . , (inline). CPP- - . . , C++, . , .

 

 

4. , . - ? , (, char) :

 

 

void push (const T& _value);

 

Test. , - , VTABLE -.

 

 

 

. , .

 

, - , - . , , , . -, . ++: , , . , , .

. , , . . .

 

 

, . , (, Visual Studio 2010) . , >> , 2 :

 

 

std::vector< std::vector< int >> vv;

 

 

:

 

 

std::vector< std::vector< int > > vv;

// ^

 

 

, . , , T value_type:

 

 

template< typename T >

class Test

{

T::value_type x;

};

. , , , <, . template:

 

 

class Test

{

public:

template< typename T>

int f (T _x);

};

 

 

template< typename T >

void f (T _x)

{

Test t;

std::cout << t. template f< T >(_x);

 

 

// : std::cout << t.f< T >(_x);

}

 

 

. , , . , . , .

 

 

,

 

 

. . , , , , :

 

 

template < typename T, int SIZE = 10 >

class Stack

{

private:

T data[ SIZE ];

int numElems;

 

public:

 

Stack();

void push(const T &);

void pop();

T & top() const;

bool empty() const;

bool full() const;

};

 

- ( ). . , , , :

 

 

if (SIZE > 10)

do1();

else

do2();

 

 

., , SIZE > 10 . , . SIZE , . do1(), do2(), SIZE, .

 

 

- ( - template template parameters). , - . , , ( ), :

 

 

template < typename T,

template < typename ELEM > class CONT = std::list >

class Queue

{

private:

CONT<T> elems;

 

public:

 

void push (T const & _v)

{

elems.push_back(_v);

}

 

void pop ()

{

elems.pop_front();

}

 

T top () const

{

return elems.front();

}

 

bool empty () const

{

return elems.empty();

}

};

 

 

T:

 

 

Queue< T > q1; // Queue< T, std::list >

 

 

, , :

 

 

Queue< T, std::deque > q1;

 

 

, std::list std::deque - . , , .

 





:


: 2016-07-29; !; : 878 |


:

:

- - , .
==> ...

1609 - | 1575 -


© 2015-2024 lektsii.org - -

: 0.031 .