gpt4 book ai didi

c++ - C++ 构造函数可以是模板吗?

转载 作者:可可西里 更新时间:2023-11-01 18:04:44 32 4
gpt4 key购买 nike

我有一个带有模板化构造函数的非模板类。这段代码为我编译。但我记得我曾在某处提到构造函数不能是模板。有人可以解释这是否是一种有效的用法吗?

typedef double Vector;

//enum Method {A, B, C, D, E, F};
struct A {};

class Butcher
{
public:
template <class Method>
Butcher(Method);


private:
Vector a, b, c;
};

template <>
Butcher::Butcher(struct A)
: a(2), b(4), c(2)
{
// a = 0.5, 1;
// b = -1, 1, 3, 2;
// c = 0, 1;
}

谢谢,悟空。

最佳答案

构造函数作为模板成员是完全有效的。我认为您可能会想到的唯一一件事是模板构造函数永远不是复制构造函数,因此模板构造函数本身不会阻止生成编译器生成的复制构造函数。

关于c++ - C++ 构造函数可以是模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696789/

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