gpt4 book ai didi

c++ - 为什么我们需要模板 因为我们有类初始化

转载 作者:行者123 更新时间:2023-11-28 05:09:06 26 4
gpt4 key购买 nike

最近我知道了一个新的模板用法,如下所示

template <unsigned int N>

我在这里看到了答案
What does template <unsigned int N> mean?它显示了几个示例,包括:

template<unsigned int S>
struct Vector {
unsigned char bytes[S];
};

但是,我无法弄清楚这种用法的意义。为什么我们不直接使用类初始化来完成这项工作。在这里使用模板有什么意义?

最佳答案

类的大小必须在编译时已知。所以你不能在类初始化时提供大小。这包括类中包含的任何固定大小数组的大小。

有些编译器扩展允许您使用具有动态分配大小的固定大小数组的语法,但这不是标准的 C++。

即使像 std::vector 这样的类也有固定的大小,但它们对其内容使用动态内存分配,因此内容的大小可以在类初始化时提供。此类容器包含指向动态分配内存的指针,而不是固定大小的数组。

关于c++ - 为什么我们需要模板 <int N> 因为我们有类初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887199/

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