【发布时间】:2011-09-08 08:54:43
【问题描述】:
我想做:
typedef MyTemplateClass<Type01, Type02> TClass;
TClass t;
TClass::InnerClass i;
i.test();
我认为解决方案可能是:
template <typename A, typename B>
class MyTemplateClass
{
public:
class InnerClass
{
//here I can do stuff with A and B
A test() { return 0; }
};
friend class InnerClass;
};
但我想在头文件底部包含单独的 *.inl 文件中包含 ma 模板
如何在其他文件中定义这样的行为?
当我这样做的时候
//file.inl
class InnerClass
{
//here I can do stuff with A and B
A test() { return 0; }
};
A 和 B 未定义。
但是
template <typename A, typename B>
class InnerClass
{
...
};
使我的方法模板独立于 MyTemplateClass 类型...
再一次用一句话: 如何在其他文件中制作 MyTemplateClass 的 InnerClass 并提供
TClass::InnerClass i;
i.test();
行为?
【问题讨论】:
标签: c++ templates inner-classes