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
命名空间。