如何从模板.h和.hpp声明和初始化列表

时间:2014-09-26 20:40:46

标签: c++

我必须在C ++中从STL列表创建一个队列。 如何在模板中创建List并将其初始化为类成员?

这是.h:

#pragma once

template <class T>
class QueueQ
{
public:
    QueueQ(void);
    ~QueueQ(void);
    bool empty(void);
    int size(void);
    T front(void);
    void push(T _object);
    void pop(void);

private:
    int a;
    list<T> m_list;
};

这是.hpp:

#include "QueueQ.h"
#include <list>
using namespace std;

template <class T>
QueueQ<T>::QueueQ(void)
{
    this->m_list<T>;
}

我怎样才能将m_list作为我可以从这个&gt; m_list访问的类成员?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果确实需要显式调用构造函数(要么传递参数,要么避免基本类型的默认初始化),请使用构造函数初始化器

template <class T>
QueueQ<T>::QueueQ(void) : m_list(list, of, constructor, arguments), m_answer(42)
{}

请注意,成员按照在中声明的顺序进行初始化,而不是它们在ctor-initializer中出现的顺序。

此外,构造函数的支撑体应该几乎总是为空(除了其他原因,你会遇到异常的问题)。