gpt4 book ai didi

模板类的 C++ typedef

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:09:13 26 4
gpt4 key购买 nike

在 C++ 中为模板化类创建别名的最佳方法是什么?

template<typename T>
class Dummy1
{
public:
Dummy1(T var) : myVar1(var) {
}
~Dummy1() {
}
private:
T myVar1;
};

C 风格是:

typedef Dummy1<int> DummyInt;

据我所知,在 C++ 中,我会这样写:

class DummyInt : public Dummy1<int> 
{
DummyInt(int a) : Dummy1<int>(a) { }
~DummyInt() { }
}

有更好/更短的方法吗?这样一来,当我从基类继承时,每次都必须声明构造函数。

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

最佳答案

如果您只是必须使用继承,那么您可以避免重复 中的构造函数并继续继承它们:

struct DummyInt : Dummy1<int> {
using Dummy1::Dummy1;
};

否则,就像你一样使用别名。如果您不希望它成为“C 方式”,您可以采用现代 C++ 风格:

using DummyInt = Dummy1<int>;

关于模板类的 C++ typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501033/

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