C++;模板化类的typedef < >在C++中模板化类创建别名的最好方法是什么?< /P> template<typename T> class Dummy1 { public: Dummy1(T var) : myVar1(var) { } ~Dummy1() { } private: T myVar1; }; 模板 Dummy1类 { 公众: Dummy1(T变量):myVar1(var){ } ~Dummy1(){ } 私人: T-myVar1; };

C++;模板化类的typedef < >在C++中模板化类创建别名的最好方法是什么?< /P> template<typename T> class Dummy1 { public: Dummy1(T var) : myVar1(var) { } ~Dummy1() { } private: T myVar1; }; 模板 Dummy1类 { 公众: Dummy1(T变量):myVar1(var){ } ~Dummy1(){ } 私人: T-myVar1; };,c++,templates,typedef,c++11,C++,Templates,Typedef,C++11,C风格将是: typedef Dummy1<int> DummyInt; typedef Dummy1 DummyInt; 在C++中,据我所知,我会写: class DummyInt : public Dummy1<int> { DummyInt(int a) : Dummy1<int>(a) { } ~DummyInt() { } } 类DummyInt:public Dummy1 { DummyInt(int a):Dummy1(

C风格将是:

typedef Dummy1<int> DummyInt;
typedef Dummy1 DummyInt;
在C++中,据我所知,我会写:

class DummyInt : public Dummy1<int> 
{
    DummyInt(int a) : Dummy1<int>(a) { }
    ~DummyInt() { }
}
类DummyInt:public Dummy1
{
DummyInt(int a):Dummy1(a){}
~DummyInt(){}
}
有更好/更短的方法吗?因为这样,当我从基继承时,每次都必须声明构造函数

我需要
Dummy1
的别名,否则我需要在整个代码中使用模板选项(如指针和引用)。但我不想这样做

我更喜欢(C++11及之后):

使用DummyInt=Dummy1;
在我看来,没有理由不在这里使用别名。

如果您必须使用继承,那么您可以通过继承来避免重复构造函数:

struct DummyInt : Dummy1<int> {
  using Dummy1::Dummy1;
};
struct DummyInt:Dummy1{
使用Dummy1::Dummy1;
};
否则,只需像您一样使用别名。如果你不希望它成为“C方式”,你可以采用现代C++风格:

using DummyInt = Dummy1<int>;
使用DummyInt=Dummy1;

您也可以在C中使用typedef或using++

typedef Dummy1<int> DummyInt;
using DummyInt = Dummy1<int>;
typedef Dummy1 DummyInt;
使用DummyInt=Dummy1;

你在现代C++代码IMO.<

typedef Dummy1<int> DummyInt;
using DummyInt = Dummy1<int>;