gpt4 book ai didi

c++ - 命名空间到底是什么,为什么有必要

转载 作者:可可西里 更新时间:2023-11-01 16:28:06 27 4
gpt4 key购买 nike

我现在正在学习 C++,在每个项目的开始,我的导师都会写一行:

using namespace std;

据我所知,它使您不必调用 header 中包含的 header 名称中的函数,例如 iostream::stdout,而只需调用 stdout。

但这行代码究竟告诉 C++ 做什么。什么是命名空间,什么是标准?

除了 python 之外,我也是编程的新手,所以切换到新范式对我来说非常困惑。

最佳答案

来自 cppreference.com:

Namespaces provide a method for preventing name conflicts in large projects.

Symbols declared inside a namespace block are placed in a named scope that prevents them from being mistaken for identically-named symbols in other scopes.

Multiple namespace blocks with the same name are allowed. All declarations within those blocks are declared in the named scope.

namespace 可以避免名称冲突,例如标准库定义了 sort() 但对于排序函数来说这是一个非常好的名称,感谢 namespace ,您可以定义自己的 sort() 因为它不会与标准命名空间位于同一命名空间中。

using 指令告诉编译器在当前范围内使用该命名空间,这样你就可以做

int f(){
std::cout << "out!" << std::endl;
}

或:

int f(){
using namespace std;
cout << "out!" << endl;
}

当您使用来自另一个命名空间的大量内容时,它会很方便。

来源:Namespaces - cppreference.com

关于c++ - 命名空间到底是什么,为什么有必要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32161199/

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