gpt4 book ai didi

类中的 C++ typedef

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:08 26 4
gpt4 key购买 nike

我使用此 C++ 代码将 x 存储到变量 val。

class Hello
{
int val;
public:
Hello(int x) : val(x) {}
};

但是,当我看到这段代码时,我看不出 Super 是如何存储值 t 或 o 的。

template<typename T>
class K : public std::auto_ptr<T>
{
typedef std::auto_ptr<T> Super;
public:
K() : Super() { }
K(T* t) : Super(t) { }
K(K<T>& o) : Super(o) { }
};

这段代码是如何工作的?

最佳答案

可以写成

template<typename T>
class K : public std::auto_ptr<T>
{
public:
K() : std::auto_ptr<T>() { }
K(T* t) : std::auto_ptr<T>(t) { }
K(K<T>& o) : std::auto_ptr<T>(o) { }
};

初始化基类只是比较冗长。如果您必须处理模板化的基类,大多数情况下 typedef 会更简洁。

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

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