gpt4 book ai didi

c++ - 对模板类的模糊引用 (C++)

转载 作者:行者123 更新时间:2023-12-02 10:06:04 25 4
gpt4 key购买 nike

我是模板类的新手,并尝试实现一个非常简单的程序,只是为了尝试功能和语法。
我初始化了一个模板类距离,然后尝试获取数据并显示它。

#include<iostream>
using namespace std;

template <class T>

class distance {

T feet;
T inches;

public:
distance ()
{

}
T getdata (T f, T i)
{
feet=f;
inches=i;
}
void showdata ()
{
cout<<"Distance is "<<feet<<" feet and "<<inches<<" inches";
}

};

int main ()

{

distance <int> x;
x.getdata(5,7);
x.showdata();


}

然而,在 distance <int> x行,我收到错误消息,指出“错误:对“距离”的引用不明确”。我无法弄清楚我的错误。

最佳答案

using namespace std;

你刚刚发现了 why using namespace std; is bad practice .

这会注入(inject) C++ 库的 std::distance将模板添加到程序的全局命名空间中,导致与您自己的名称冲突 distance模板。

删除这个,替换所有 coutstd::cout s,并修复 getdata() 的返回值修复了所有编译错误。

将此作为学习类(class):避免 using namespace std;将来,或准备处理神秘的编译错误。

关于c++ - 对模板类的模糊引用 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60200149/

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