c++ - 模板参数

标签 c++ visual-studio-2008 templates visual-c++

我有ClassA<ARG_TYPE>ClassB<ARG_TYPE> 。现在我想使用ClassC ,有共同点ARG_TYPE并提到类作为模板参数。

ClassC<ARG_TYPE, ClassA<ARG_TYPE>, ClassB<ARG_TYPE>>简单。

但是可以声明 ClassC<ARG_TYPE, ClassA, ClassB>这样 A 类和 B 类都知道使用 ARG_TYPE 作为它们的模板参数?

最佳答案

是的,可以通过使用“模板模板参数”来完成。

声明 ClassC 如下:

template<typename Arg, 
    template<typename T_Arg> class T_ClassA, 
    template<typename T_Arg> class T_ClassB>
class ClassC
{
   typedef T_ClassA<Arg> MyClassA;
   typedef T_ClassB<Arg> MyClassB;

   // Use MyClassA and MyClassB
}; 

使用

ClassC<Arg, ClassA, ClassB> 

它应该可以正常工作。

关于c++ - 模板参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447780/

相关文章:

c++ - 持有对自身的引用的类

c++ - RegOpenKeyEx 返回 ERROR_SUCCESS 但 RegSetValueEx 总是返回 ERROR_ACCESS_DENIED

c++ - 传承精选功能

c++ - 如何使用 Application Verifier 在我的代码中找到真正的问题行?

c++ - 我可以将引用类型传递给模板以指定以下非类型模板参数的类型吗?

c++ - 将方法限制为 C++ 中的少数类

c++ - 使用 typeid 警告未使用的变量

visual-studio-2008 - 如何使用 MSTest/VS2008 简化 TDD

asp.net - 当文件实际引用 v10 时,找不到 v11.0\WebApplications\Microsoft.WebApplication.targets

templates - 如何在 prestashop 的 smarty 翻译中使用 html 标签?