【发布时间】:2016-12-06 10:38:02
【问题描述】:
这是我第一次在课堂上使用模板。这是我的尝试。
MyCairoControl.h:
#ifndef _MYCAIROCONTROL_
#define _MYCAIROCONTROL_
template<class T>
class MyCairoControl : public IControl
{
private:
T *pPlug;
public:
MyCairoControl(T *plug, IRECT container);
~MyCairoControl();
};
#endif // !_MYCAIROCONTROL_
MyCairoControl.cpp:
#include "MyCairoControl.h"
MyCairoControl::MyCairoControl(T *plug, IRECT container) : IControl(plug, container), pPlug(plug) {
// t->somethings();
}
MyCairoControl::~MyCairoControl() {
}
但它说“T”是未定义的,所以我不能使用那个 CTOR。在类上使用模板不是正确的方法吗?
【问题讨论】:
-
有件事告诉我你迟早会读到这篇文章:"Why can templates only be implemented in the header file?"
-
@paizza 我已经更新了我的答案,以简要讨论将 .cpp 文件与模板一起使用。现在也可以了。