gpt4 book ai didi

c++ - 不同的 C++ 模板类型名定义意味着相同的吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:59 26 4
gpt4 key购买 nike

template <typename T>
class A {
int func(T a);
};

template <typename V>
int A<V>::func(V a) {
return 0;
}

在 Visual Studio 2017 中,当我编写上述代码时,编辑器显示 Function denfinition for 'func' not found ,它建议我创建一个新的,它使用 typename T .但是,我仍然可以编译并运行成功。

这让我很困惑。这是 Visual Studio 中的错误吗?是否int A<V>::func(V a)int func(T a) 相同在A类?

在所有声明和定义中写相同的类型名是一种好习惯吗?

最佳答案

Is that a bug in Visual Studio?

是的,这是 Intellisense 中的一个错误(事实证明您可以正常编译和运行)。

Does int A<V>::func(V a) just the same as int func(T a) in class A?

类是A<V> (A 是一个类模板)但是是的。

Is it a good practice to write the same typename in all declarations and definitions?

也许,为了最大限度地提高代码的清晰度。

如果没有理由更改模板参数的名称,请不要更改它。

关于c++ - 不同的 C++ 模板类型名定义意味着相同的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43522698/

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