gpt4 book ai didi

c++ - 是否可以在类定义之外定义模板化类的模板化成员方法

转载 作者:行者123 更新时间:2023-11-30 00:54:24 24 4
gpt4 key购买 nike

我一直在努力确保我理解 C++ 模板的语法,我认为我已经到了最后一个案例。如果我有一个模板化类,它有一个模板化方法(与类的模板参数无关),我可以在类定义之外定义该方法吗?如果是这样,语法是什么?

如果模板化方法是在模板化类定义中定义的,那么一切都很好。但是为了在类外部定义方法,我尝试了很多关键字和尖括号的组合,但总是遇到编译器错误 (Visual Studio 2012)。

问题归结如下:

template <typename T>
class TestClass
{
public:
// ctor
TestClass(T classtype) {m_classtype = classtype;}

// The declaration/definition below is fine.
template <typename U> void MethodOk(U param) {printf("Classtype size: %d. Method parameter size: %d\n", sizeof(m_classtype), sizeof(param));}

// The declaration below is fine, but how do I define the method?
template <typename U> void MethodProblem(U param); // What is the syntax for defining this outside the class definition?

private:
T m_classtype;
};

最佳答案

template<typename T>
template<typename U>
void TestClass<T>::MethodProblem(U param)
{
//...
}

关于c++ - 是否可以在类定义之外定义模板化类的模板化成员方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14340531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com