码迷,mamicode.com
首页 > 编程语言 > 详细

(基础)C++语法_1

时间:2015-05-27 17:25:32      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:c++   基础   

我自认为注释还算详细,哈哈。

<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;
}



(基础)C++语法_1

标签:c++   基础   

原文地址:http://blog.csdn.net/qq_19427739/article/details/46048297

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!