gpt4 book ai didi

c++ - 重载 << 并使用命名空间 std

转载 作者:行者123 更新时间:2023-11-28 07:00:02 25 4
gpt4 key购买 nike

我需要帮助来理解以下内容:

我重载了 << 运算符。我写了一个测试程序。我没有包含“使用命名空间标准”代码。但该计划运作良好。

#include <iostream>
#include "fraction.h"

//using namespace std;

int main(void)
{
//constructing two fractions
Fraction a(4, 2);
Fraction b(17, 11);
//modifying them that is entering a fractions from keyboard
cin>>a;
cin>>b;
//computing product and quotient and printing them using cout
cout<<a*b<<endl;
cout<<a/b<<endl;
}

但如您所见,我使用了来自标准命名空间的“endl”。你能解释一下我在这里遇到的“悖论”吗?

P.S 我没有包含 .h 和 .cpp 文件,因为我认为它们不相关。

最佳答案

编译器与翻译单元一起工作。它需要一个 .cpp,然后在翻译单元中插入 .h 文本。如果您的头文件包含 using namespace std;,它将有效地出现在编译器尝试编译的代码中。

这是一种不好的做法,因为您将命名空间 using 强加给用户,如果其他命名空间使用相同的名称,可能会导致名称冲突。

关于c++ - 重载 << 并使用命名空间 std,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621150/

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