c++入门 (1)

一、C++关键字

 

二、命名空间

  1. 命名空间可以解决函数、全局变量名重复的问题,包在不同的命名空间里的重复函数,实际是两个完全无关的函数。
  2. 命名空间允许嵌套,嵌套内部和外部没有任何关系。
  3. 命名空间允许重名,重名的名字空间会被合并进其中一个空间。
  4. 命名空间是用来定义作用域的它解决了c语言中只能用文件划分作用域的缺陷。
#include<iostream>
using namespace std; //将std域对当前文件可见,可直接调用。
//命名空间的嵌套
namespace test
{
	namespace N1
	{
		int add(int a, int b)
		{
			cout << "1: ";
			return a + b;
		}
	}
	namespace N2
	{
		int add(int a, int b)
		{
			cout << "2: ";
			return a + b;
		}
	}

}
//简单的命名空间
namespace N2
{
	int add(int a, int b)
	{
		cout << "3: ";
		return a + b;
	}
}
//允许存在相同名称的命名空间
namespace N2
{
	int sub(int a, int b)
	{
		cout << "4: ";
		return a - b;
	}
}
int main()
{
	cout << test::N1::add(1, 2)<<endl;
	cout << test::N2::add(4, 5)<<endl;
	cout << N2::add(2, 5)<<endl;
	cout << N2::sub(2, 3)<<endl;
	system("pause");
	return 0;
}

命名空间的使用

1.使用using关键字,可以引用一个命名空间,使得这个命名空间内的所有内容对自己可见。

using N::b;
int main()
{
   printf("%d\n", N::a);
   printf("%d\n", b);
   return 0;    
}

2.使用using namespace 将名词空间名称引入

using namespce N;
int main()
{
   printf("%d\n", N::a);
   printf("%d\n", b);
   Add(10, 20);
   return 0;    
}

3.如果两个命名空间里有相同的两个函数,那么即使我同时用using引用了两个命名空间,那么也不会报错,除非我使用了这个函数(因为使用函数会产生歧义,也就是不知道该调用那个)。

 

三、C++输入&输出

输入:cin>>a;

输出:cout << "hello world"<<endl;

四、缺省参数

函数的参数列表中,允许存在被赋值的参数,这些参数具备以下特点:

1、如果传入了,那么会取传入的值,如果没有传入,会取函数定义时被赋值的值(默认值)

void TestFunc(int a = 0) {
cout<<a<<endl; }
int main()
{
TestFunc();     // 没有传参时,使用参数的默认值
TestFunc(10);   // 传参时,使用指定的实参
}

2、半缺省参数的缺省值必须在最后,不能参杂着。

void TestFunc(int a, int b = 10, int c = 20) {
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"c = "<<c<<endl; }

3、缺省参数不能同时在函数声明和定义中重复出现。

如果声明与定义位置同时出现,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省

值。

//a.h
void TestFunc(int a = 10);
// a.c
void TestFunc(int a = 20)
{}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值