我自认为注释还算详细,哈哈。
<pre name="code" class="cpp">//名字空间使用示例.cpp #include <iostream> using namespace std; //空间std涵盖了所有标准C++的定义和声明 namespace one //定义了一个名字空间one,里面有1个常量M和一个变量inf { const int M = 200; int inf = 10; } //后面不加分号 namespace two //定义一个名字空间two,里面有两个变量 { int x; int inf = -100; } using namespace one; int main() { using two::x; //using声明仅使用名字空间two中的内容x x=-100; //直接访问,相当于two::x = -100; cout<<"oneInf "<<inf<<endl; //using声明使用了整个one,其所有成员直接访问, one的inf cout<<"oneM "<<M<<endl; two::inf *= 2; //使用名字空间名::局部内容名操作未使用using声明的内容 cout<<"twoInf "<<two::inf<<endl; // cout<<"twoX "<<x<<endl; //因为已经用using声明了two中内容x, 可以直接访问 return 0; }
//域解析符使全局变量真正具有全局作用域.cpp #include <iostream> #include <iomanip> //? using namespace std; int sum = 5000; //定义全局变量sum int main() { int arr[3] = {10, 20, 30}; //一个小程序块开始 { int i, sum = 0; for(int i = 0; i < 3; i++) { sum += arr[i]; } cout<<"local sum: "<<sum<<endl; //输出局部sum ::sum += sum; //通过域解析符在同名局部变量的作用域内对全局sum访问 cout<<"global sum: "<<::sum<<endl; } sum *= 2; //这是全局sum cout<<"global sum: "<<::sum<<endl; int sum = 200; //定义另一个sum cout<<"local sum: "<<sum<<endl; ::sum += sum; //10120 + 200 cout<<"global sum: "<<::sum<<endl; return 0; }
//形式参数带默认参数值的函数定义以及调用示例.cpp #include <iostream> using namespace std; void Fun(int i, int j = 5, int k = 10); //原型声明中形参j和k分别指定了默认参数5和10 int main() { Fun(20); Fun(14, 30); Fun(50, 60, 70); return 0; } void Fun(int i, int j, int k) //原型中定义过,在定义的首部不能再指定 { cout<<i<<" "<<j<<" "<<k<<endl; }
//用宏定义实现两数相乘(错).cpp #include <iostream> using namespace std; #define Multiply(x,y) x*y //注意:此处x和y两侧没有加括号,出现隐患 int main() { int a = Multiply(3 + 4, 2 + 3); //展开后为:int a = 3 + 4*2 + 3 cout<<"a = "<<a<<endl; //输出14, 原计划是7*5 = 35 return 0; }
//用内联函数实现两数相乘.cpp #include <iostream> using namespace std; inline int Multiply(int x, int y) //在面向对象程序设计中, { //定义在类内的成员函数都将自动理解为内联函数, return x * y; //前面无需再加inline关键字 } int main() { int a = Multiply(3 + 4, 2 + 3); cout << "a = " << a << endl; //用了内联函数之后,确实避免了宏定义那种错误, return 0; //输出值是35 }
//重载函数示例.cpp //在C++语言中,对于功能完全相同或类似,只是在形式参数的个数、 //类型、顺序方面有区别的不同函数以相同的函数名来命名, //该同名函数统称为重载(Overload) #include <iostream> using namespace std; int square(int x) //重载函数的第1版本,int型参数 { return x * x; } float square(float x) //2版本 { return x * x; } double square(double x = 1.5) //3版本 { return x * x; } int main() { cout << "square() = " << square() << endl; //调用的是第三个版本,因为它有默认值 cout << "square(10) = " << square(10) << endl; //调用第一版本 cout << "square(2.5f) = " << square(2.5f) << endl;//2edition cout << "square(1.1) = " << square(1.1) << endl; return 0; }
原文地址:http://blog.csdn.net/qq_19427739/article/details/46048297