目录
1. C++关键字(C++98)
2. 命名空间
2.1 命名空间定义
2.2 命名空间使用
3. C++输入&输出
4. 缺省参数
4.1 缺省参数概念
4.2 缺省参数分类
5. 函数重载
5.1 函数重载概念
5.2 C++支持函数重载的原理--名字修饰(name Mangling)
6. 引用
6.1 引用概念
6.2 引用特性
6.3 常引用
6.4 使用场景
6.5 传值、传引用效率比较
6.6 引用和指针的区别
以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的
namespace bit { // 命名空间中可以定义变量/函数/类型 int a = 0; int b = 1; int Add(int left, int right) { return left + right; 比特就业课 命名空间的使用有三种方式: 加命名空间名称及作用域限定符 使用using将命名空间中某个成员引入 使用using namespace 命名空间名称 引入 3. C++输入&输出 新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物, } struct Node { struct Node* next; int val; }; } int main() { // 编译报错:error C2065: “a”: 未声明的标识符 printf("%d\n", a); return 0; }
命名空间的使用有三种方式: 加命名空间名称及作用域限定符 int main() { printf("%d\n", N::a); return 0; }
使用using将命名空间中某个成员引入 using N::b; int main() { printf("%d\n", N::a); printf("%d\n", b); return 0; }
使用using namespace 命名空间名称 引入 using namespce N; int main() { printf("%d\n", N::a); printf("%d\n", b); Add(10, 20); return 0; }
#include // std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中 using namespace std; int main() { cout<<"Hello world!!!"<
#include using namespace std; int main() { int a; double b; char c; // 可以自动识别变量的类型 cin>>a; cin>>b>>c; cout<
std命名空间的使用惯例: std是C++标准库的命名空间,如何展开std使用更合理呢? 1. 在日常练习中,建议直接using namespace std即可,这样就很方便。 2. using namespace std展开,标准库就全部暴露出来了,如果我们定义跟库重名的类型/对 象/函数,就存在冲突问题。该问题在日常练习中很少出现,但是项目开发中代码较多、规模 大,就很容易出现。所以建议在项目开发中使用,像std::cout这样使用时指定命名空间 + using std::cout展开常用的库对象/类型等方式。 void Func(int a = 0) { cout<
void Func(int a = 10, int b = 20, int c = 30) { cout<<"a = "<
半缺省参数 void Func(int a, int b = 10, int c = 20) { cout<<"a = "<
1. 半缺省参数必须从右往左依次来给出,不能间隔着给 2. 缺省参数不能在函数声明和定义中同时出现 3. 缺省值必须是常量或者全局变量 4. C语言不支持(编译器不支持) void TestRef() { int a = 10; int& ra = a;//<====定义引用类型 printf("%p\n", &a); printf("%p\n", &ra); }
引用类型必须和引用实体是同种类型的void TestConstRef() { const int a = 10; //int& ra = a; // 该语句编译时会出错,a为常量 const int& ra = a; // int& b = 10; // 该语句编译时会出错,b为常量 const int& b = 10; double d = 12.34; //int& rd = d; // 该语句编译时会出错,类型不同 const int& rd = d; }
void Swap(int& left, int& right) { int temp = left; left = right; right = temp; }
2. 做返回值 int& Count() { static int n = 0; n++; // ... return n; }
如果函数返回时,出了函数作用域,如果返回对象还在(还没还给系统),则可以使用 引用返回,如果已经还给系统了,则必须使用传值返回。 下一篇:国家核心期刊目录_国家码