我可能会使它比它需要更混乱,但我想弄清楚什么是最好的做法是在处理模板并传递它们时参考。传递变量的指针作为基于模板的参数
我有一个叫做IOQueue
的类模板。我在main
中创建了一个IOQueue<std::string>
。我想传递一个指向另一个将与所述队列交互的类的指针。以下是我在寻找:
的main.cpp
IOQueue<std::string> *DecompressLogQueue;
int main(int argc, char** argv)
{
CompressFile cp(DecompressLogQueue);
cp.Compress(9);
return 0;
}
现在,这是我有点迷茫......在我CompressFile类,是有一个更清洁,更合乎道德的方式来传递这个指针?这就是我现在所看到的。
CompressFile::CompressFile(IOQueue<std::string> *DecompressLogQueue)
{
CompressFile::DecompressLogQueue = DecompressLogQueue;
}
如果我继承了我在CompressFile IOQueue
模板,像这样
class CompressFile : public IOQueue<string>
{
...
不能做我沿着
CompressFile::CompressFile(const T& DecompressLogQueue)
行我知道这可能不会编译东西。如果你想构造函数
class CompressFile
{
public:
template<typename T>
CompressFile(IOQueue<T>* DecompressLogQueue)
{
// Will accept a pointer to an IOQueue with any template parameter.
// ...
}
// ...
};
:
感谢
这里有问题吗? –