我可能會使它比它需要更混亂,但我想弄清楚什麼是最好的做法是在處理模板並傳遞它們時參考。傳遞變量的指針作爲基於模板的參數
我有一個叫做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.
// ...
}
// ...
};
:
感謝
這裏有問題嗎? –