關於模板template的泛型參數的構造函數

#include <iostream>
#include <cstddef>
using namespace std;

class alloc
{
public:
    alloc()
    {
        cout << "alloc()" << endl;
    }
};

template <class T,class Alloc =alloc,size_t Bufsize = 512>

class deque
{
public:
    deque()
    {
        cout << "deque" << endl;
    }
};

template <class T,class Seq = deque<T> >
class stack
{
public:
    stack()
    {
        cout << "stack" << endl;
    }
};

int main()
{
    stack<int> s;
    return 0;
}
運行結果
stack

表明雖然stack類有deque泛型參數,但沒有實例化對象

#include <iostream>
#include <cstddef>
using namespace std;

class alloc
{
public:
    alloc()
    {
        cout << "alloc()" << endl;
    }
};

template <class T,class Alloc =alloc,size_t Bufsize = 512>

class deque
{
public:
    deque()
    {
        cout << "deque" << endl;
    }
private:
    Alloc a;
};

template <class T,class Seq = deque<T> >
class stack
{
public:
    stack()
    {
        cout << "stack" << endl;
    }
private:
    Seq s;
};

int main()
{
    stack<int> s;
    return 0;
}
運行結果
alloc()
deque
stack
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章