如何从template.h和.hpp声明和初始化列表
How to declare and initialize a list from template .h and .hpp
我必须用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作为可以从此->m_list访问的类成员?
谢谢!
如果确实需要显式调用构造函数(传递参数或避免基元类型的默认初始化),请使用构造函数初始值设定项
template <class T>
QueueQ<T>::QueueQ(void) : m_list(list, of, constructor, arguments), m_answer(42)
{}
请注意,成员的初始化顺序是在类中声明的,而不是在ctor初始值设定项中出现的顺序。
此外,构造函数的支撑体应该几乎总是空的(除其他原因外,您会遇到异常的严重问题)。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 未在作用域中声明unordered_map
- C++避免重复声明的语法是什么
- 如何确保C++函数在定义之前声明(如override关键字)
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 错误:未在此范围内声明'reverse'
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 为什么在定义函数之前先声明它
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 什么是"#include <boost/functional/hash.hpp> "?
- #ifdef和未声明的标识符
- 没有显式声明的int[]中的foreach
- 在基于范围的for循环中使用结构化绑定声明
- 在将变量声明为引用时,堆在释放后使用
- C++:无法访问声明的受保护成员
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- LNK2005在.hpp文件中声明函数时出错
- 如何从template.h和.hpp声明和初始化列表
- 如何从实现(.cpp文件)中提取声明(.hpp文件)
- 当使用c++模块时,有任何理由将函数声明(.hpp文件)与其定义(.cpp文件)分开