我有一个类似Sample.hpp 的类模板 ,其类型别名为X。
#ifndef SAMPLE_HPP
#define SAMPLE_HPP
template<typename STA, typename STB>
class Sample
{
using X = Sample<STA,STB>;
public:
Sample();
inline X* GetNext() const;
private:
X* Next;
};
#include "Sample.cpp"
#endif // SAMPLE_HPP
Run Code Online (Sandbox Code Playgroud)
定义位于Sample.cpp中。
#include "Sample.hpp"
template<typename STA, typename STB>
Sample<STA,STB>::Sample() {
Next = nullptr;
}
template<typename STA, typename STB>
typename Sample<STA,STB>::X* Sample<STA,STB>::GetNext() const {
return this->Next;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,还有其他方法来定义GetNext函数吗?例如,没有类型名或没有示例类模板的完整声明。当我将代码更改为
template<typename STA, typename STB>
Sample<STA,STB>* Sample<STA,STB>::GetNext() const {
return this->Next;
} …Run Code Online (Sandbox Code Playgroud)