如何从template.h和.hpp声明和初始化列表 我必须在C++中从STL列表中排队。 如何在模板中创建和初始化列表作为类成员

如何从template.h和.hpp声明和初始化列表 我必须在C++中从STL列表中排队。 如何在模板中创建和初始化列表作为类成员,c++,C++,这是。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>

这是。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_列表成为我可以从此->m_列表访问的类成员


谢谢

如果确实需要显式调用构造函数来传递参数或避免原语类型的默认初始化,请使用构造函数初始值设定项

template <class T>
QueueQ<T>::QueueQ(void) : m_list(list, of, constructor, arguments), m_answer(42)
{}
请注意,成员是按照它们在类中声明的顺序初始化的,而不是按照它们在构造函数初始值设定项中出现的顺序初始化的


此外,构造函数的括号体几乎总是空的,除其他原因外,您会遇到异常问题。

由于您已将其声明为成员变量,它将自动创建并初始化。pragma一旦丢失了。您需要包含在标题中,否则无法在那里使用它。它位于std名称空间中,因此您的声明应该类似于std::list m_list;。默认情况下,它会自动为您初始化,因此您不需要在构造函数中执行任何特殊操作。感谢Cameron,问题解决,只需要std::。我不习惯C++中的代码。