新建C++的工程
新建项目,控制台应用程序
勾选空项目, 勾去安全周期检查
源文件 --> 新建项
添加main.cpp
选择性编译
1 2 3 4 5 6 7 8 9
| #if 0 #include <stdio.h>
int main() { printf("Hello World"); return 0; } #endif
|
命名空间 (namespace)
在同样的作用域下不能定义多个同名变量或者函数
所以可以使用命名空间来解决这个问题
命名空间可以嵌套
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #include <iostream> using namespace std;
namespace yf { int a = 12; }
namespace fy { int a = 1; namespace ffy{ int a = 11; } }
int main() { cout << fy::a << endl; cout << yf::a << endl; cout << fy::ffy::a << endl; using fy::ffy::a; cout << a << endl; getchar(); return 0;
|
运行结果:
使用namespace的三种方式
1 2 3
| using namespace std; fy::ffy::a using fy::ffy::a;
|
匿名联合
联合: 几个变量公用一块内存
1 2 3 4 5 6
| union { char ch; int tt; }; tt = 65; cout << ch << endl;
|
运行结果:
枚举
可以一次性生成一系列的递增的值,如果没有复制的话,后面一个总是比前面一个多1
用处
可以在for循环里面枚举
可以表示多个同一个类型的数据
1 2 3 4 5 6 7
| enum Color { Red, Yellow, Blue, White, Black }; Color ball1; ball1 = Yellow; for (int i = Red; i <= Black; i++) { if (i == ball1) cout << i << endl; }
|
内联
函数前面加 inline.
可以加快简单函数的执行速度
1 2 3
| inline int Max(int a, int b) { return a > b ? a : b; }
|
重载
同一作用域,函数名相同,参数表不同的函数构成重载
1 2 3
| void func(int a, int b); void func(int a); void func();
|
默认参数,哑元
定义默认参数,必须从右边开始设置
1
| void func(int a, int b, int c = 3, int d = 4);
|
哑元用于兼容老版本的函数
1
| void func(int, int b, int);
|
调用的时候都是可以些3个参数
引用
引用是变量的别名
加在函数前面就可以写左值了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <iostream> using namespace std;
int& func(int a,int& b) { a++; b++; return b; }
int main() { int fy = 2, yf = 22; func(yf,fy) = 4; cout << fy << endl << yf; getchar(); return 0; }
|
动态分配内存
记得写删除内存的语句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| int* p = (int*)malloc(sizeof(int)); *p = 4; cout << *p << endl; free(p); p = NULL;
int* p2 = new int; int* p3 = new int(300); *p2 = 123; cout << *p2 << endl; cout << *p3 << endl; delete p2; delete p3; p3 = NULL; p2 = NULL;
int* p4 = new int[4]{1, 3, 5, 7}; for (int i = 0; i < 4; i++) { cout << p4[i] << " "; } delete[] p4; p4 = NULL;
|