1:<string> 与<string.h>区别
#include<string.h> : 是C语言的标准库,主要是对字符串进行操作,是基于 char* 进行操作的,例如常见的字符串操作函数 stpcpy , strcat都是在 头文件中声明的。
#include<string> : 是 C++ 语言的标准库,主要定义了 string类,你可以包含这个头文件,然后定义一个字符串对象,对于字符串的操作就基于该对象进行。
2: C++ 中 : #include<> 与 #include"" 区别 。
<>先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。
而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。
3: C++ 中 std 是什么意思
std::是个名称空间标识符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准库中的函数或者对象都要用std来限定。
4: 冒号(:)和双冒号(::) 区别
4.1:双冒号(::)
1:表示“域操作符”
例:声明了一个类A ,类A里声明了一个成员函数 void function() , 但没有在类的声明里给出 function函数的定义,那么在类外定义 function时,就要写成 void A::function() , 那么 function()函数就是类A的成员函数
2: 直接用在全局函数前,表示是全局函数
例::: 一般还有一种用法,就是直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,在类内定义的时候,则此函数名默认调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。比如在VC里,你可以在调用API函数时,在API函数名前加::
3:表示引用成员函数及变量,作用域成员运算符
例:System::Math::Sqrt() 相当于System.Math.Sqrt()
4.2 :冒号(:)
1表示机构内位域的定义(即该变量占几个bit空间
2 构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。
3 public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。
4: 类名冒号后面的是用来定义类的继承。