1. C++的LInux编译
在Linux中编译C++可以用g++或者c++来实现,逻辑格式与C的一样
2. C++中的头文件变化
C++标准头文件,一律不带.h,为了区分开C
C++中包含了所有标准C头文件,并且重新编译,重新命名:去掉“.h",并且在文件明前添加"c",例如<stdio.h> 变为 <cstdio>
3. 命名空间
为了避免名字冲突,C++引入了命名空间,标准库中的命名空间为std,using namespace std;
C++ 输入输出 cin\cout #include <iostream>
#include <iostream>
#include <string>
using namespace std;
int main(){
cout << "sdasdasda" << endl;
string name;
int age;
cin >> name >> age ;
cout << name << age;
return 0;
}
如果实时使用该命名空间的一部分东西,其中 :: 称为预操作符
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::string;
using std::endl;
int main(){
cout << "sdasdasda" << endl;
string name;
int age;
cin >> name >> age ;
cout << name << age;
return 0;
}
4. 自己写命名空间
#include <iostream>
#include <string>
using namespace std;
namespace w1{
string name = "111";
}
namespace w2{
string name = "222";
}
int main(){
cout << w1::name << endl << w2::name;
getchar();
return 0;
}
5. C++ 与标准C在字符串上的差异
字符串
比较项 | C++ | C |
风格 | C++ | C |
创建 | string str; | char str[100]; |
大小 | 1G | 100字节 |
赋值 | s1 = s2; | strcpy(s1, s2); |
连接 | str = s1 + s2; | strcat(s1, s2); |
比较 | s1 == s2;>= <= … | strcmp(s1, s2) |
长度 | str.size();/str.length() | strlen(str); |
查找 | str.find(); | strchr(s1, s2)/strstr(s1, s2); |
数组式访问 | str[1] | str[1] |
互转 | const char* str.c_str(); 将C++ 风格字符串转为 C 风格字符串 | 如果C 与 C++ 风格的字符串混合处理,会自动转为C++风格的字符串处理。 |
6. C++中的严格类型检查
C++中有严格的类型检查,这里一enum枚举举例
enum C++ 中认为 enum 是一个类型,不同类型之间不能转换,除非强转。
#include <iostream>
#include <string>
enum Course{UNIX, C, CPP, VC};
enum Color {BLACK, RED, GREEN, YELLOW, BLUE, WHITE};
int main(){
Course c;
c = CPP;
int n = CPP;
std::cout << c << " " << n << std::endl;
//c = n;//这样写是错误的,因为类型不同(int Course)
Color clr = BLUE;
//clr = VC;//这样写是错误的,因为类型不同(Color Course)
clr = (Color)VC;//强转是可以的
getchar();
return 0;
}
7. bool类型
bool C++专门增加的类型 true\false
8. 引用
reference引用&:C++新增,给变量起别名。其本质就是指针
#include <iostream>
#include <string>
using namespace std;
int main(){
double d = 123.45;
double& e = d;//引用,引用必须初始化,且对象必须是名字
cout << e << " " << &e << " " << &d << endl;//这里会显示他们是一个地址
double f = 000.222;
e = f;//这里相当于d = f;
cout << e << " " << f << endl;
const double e2 = 22.333;//只有添加const后才可以引用常量或者与常量计算
cout << e2 << endl;
const double e3 = 444 + d;
cout << e3 << endl;
getchar();
return 0;
}