gpt4 book ai didi

c++ - 带模板的类声明

转载 作者:行者123 更新时间:2023-11-30 03:24:57 25 4
gpt4 key购买 nike

我有两个以不同方式定义的类,如下所示:

template<class T, size_t N = 100> class Stack {
T data[N];
};

template<class T = int, size_t N = 100> // Both defaulted
class Stack {
T data[N];
};

我想知道这是定义类的两种不同方式,还是它们具有不同的含义?

最佳答案

您的第一个 Stack 类的第一个模板参数没有默认值:

template<class T, size_t N = 100>

使用此类,您可以像这样声明一个Stack:

Stack<int> stack; // You have to provide at least 1 template parameter
Stack<int, 50> stack;

您的第二个 Stack 类的第一个模板参数的默认值为 int:

template<class T = int, size_t N = 100>

有了这个 Stack 类,您可以像这样声明一个 Stack:

Stack<> stack; // You can declare a Stack with no template parameters
Stack stack; // The same, but C++17-only
Stack<int> stack;
Stack<int, 50> stack;

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

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