(C++)零碎知识整理
2018-03-09 21:03
351 查看
#include <iostream> //命名空间,(名字隔离,可以嵌套) using namespace std; namespace one { int a = 10; namespace two { int a = 20; } }//注:没有分号 namespace three { int a = 30; } int a = 40; int main() { int a = 50; printf("%d",a); //a -> 50; 因为就近原则,所以 a = 50; //::a -> 40; 因为 “::”为域作用限定符,所以此时'a'在整个域中查找,所以 a = 40; //three::a -> 30; 因为'three::'意为在名字为"three"的域中查找,所以 a = 30; //one::a -> 10; 因为'one::'意为在名字为"one"的域中查找,所以 a = 10; //one::two::a -> 20; 因为'one::two::'意为在名字为'one'的域中寻找,名字为'two'的域,然后在名为'two'的域中找寻'a'的值,所以 a = 20。 return; } ////////////////////////////////////////// #include <iostream> using namespace std; //把std命名空间内东西全部展开 //不可以定义与库内同名的变量 int main() { cout<<"hello world"<<enfl; //输出 “hello world” //cout -> 输出;cin -> 输入;endl -> 换行 return; } /////////////////////////////////////// 缺省参数 int Add (int a = 10 , int b = 10) { return a + b; } int main() { cout<<Add(1)<<endl; //半缺省,只能缺省右边的一个,或者多个; cout<<Add(1,1)<<endl; //都补全,不缺省 cout<<Add()<<endl; //全缺省,缺少所有参数 }
/////////////////////////////////////////////
函数重载
C++ 可以在函数名相同,参数不同(1.个数不同;2.类型不同)的情况下重载;(对应位置,压栈顺序)
C语言 不可以重载
int Add(int a, int b) { return a + b; } int Add(int a, int b,int c) { return a + b + c; } int Add(int a, char b) { return a + b; }
C语言在编译过程中,函数名字仍为原本名字,如(Add),所以在链接时,拿函数名寻找地址,C不修饰,即会不知道是该找哪一个函数
C++支持函数名修饰规则,每一个函数被修饰后均有不同,如:(Addii),(Addiii),(Addic)…等等,所以在链接时不会存在找不到函数的情况
相关文章推荐
- c++零碎知识整理
- C/C++零碎知识整理(二)
- C/C++零碎知识整理
- C/C++零碎知识整理(二)
- C++零碎知识整理
- c++ 基础知识整理(二)
- Andorid 零碎知识整理
- C/C++语法知识精华整理(2)-栈与堆、内存四大区域、 全局变量、线程技术、位字段、函数返回值副本机制等
- C/C++指针知识整理(一)
- 再探java基础——零碎基础知识整理
- Java基础知识——零碎整理
- C++知识要点整理05:常对象 常引用
- C/C++一些零碎的知识
- C++零碎知识
- C++基础知识学习整理一
- C++基础知识整理(面试热点)
- C++基础知识整理(一)
- Android系统零碎知识整理
- C/C++知识细节整理
- Jack整理的Win32汇编基础知识 - [C/C++]