import和include区别
在Java和C++中,包含和访问库中的类型(如字符串)有不同的机制。
Java中的import语句:
在Java中,当你使用import语句时,它告诉编译器在编译时需要查找哪些类。Java中的String类位于java.lang包中,该包是自动被所有Java程序导入的,因此你通常不需要显式导入java.lang.String。你可以直接使用String类而不需要任何前缀。
1 | import java.util.List; // 导入java.util包中的List接口 |
C++中的#include指令:
在C++中,当你使用#include <string>预处理指令时,你是在告诉编译器在编译之前将<string>头文件的内容文本替换到源文件中。然而,C++标准库中的很多功能都是在命名空间std中定义的。
因此,当你包含<string>头文件后,你还需要使用std::的前缀来访问std命名空间中的string类。
1 |
|
如果你想避免在每次使用标准库中的类型时都键入std::前缀,你可以使用using声明或using指令。但请注意,过度使用using namespace std;可能会导致名称冲突,特别是在大型项目或头文件中。
1 |
|
或者:
1 |
|
总结来说,C++中的#include <string>和Java中的import java.lang.String有不同的含义和行为。在C++中,即使包含了<string>头文件,也需要指定命名空间前缀std::来访问string类,除非你使用了using声明或指令来引入std命名空间。