C++第一节入门

一、历史

C++是在C上继承拓展的!

java是一家公司(甲骨文)借鉴C++生成的!

C#是微软借鉴java生成的!

二、命名空间

当我们定义一个名叫rand的变量,但是由于stdlib头文件里面有个函数跟rand重名!因此会发生命名冲突!

因此为了解决该问题,C++引入了命名空间的定义!

同一个域里面不可以定义同一个变量!

不同的域里面可以定义同一个变量!(局部变量访问优先)

常见的域有:类域、命名空间域、局部域、全局域

#include<stdio.h>
#include<stdlib.h>

int a = 0;
int main()
{
	int a = 1;
	printf("%d\n", a);
	printf("%d\n", ::a);
	return 0;
}

对于上面这段代码, 打印的第一个a为局部变量;第二个::a为全局变量。

::被称为域作用限定域!

::的左边为空白!(空格无影响),表示的就是在全局域访问!

#include<stdio.h>
#include<stdlib.h>
#include<iostream>

int a = 0;
namespace bit
{
	int a = 1;
}
int main()
{
	// int a = 2;
	printf("%d\n", a);   // 打印结果为0
	//printf("%d\n", ::a);
	return 0;
}

默认的访问顺序为 局部域->全局域

如果不指定不会访问命名空间域!(默认不会的)

#include<stdio.h>
#include<stdlib.h>
#include<iostream>

//int a = 0;
namespace bit
{
	int a = 1;
}
int main()
{
	// int a = 2;
	printf("%d\n", a);
	//printf("%d\n", ::a);
	return 0;
}

代码会直接报错!

有两种方法来访问命名空间域:

  • 展开了命名空间域!
  • 指定访问的的命名空间域!

1、展开命名空间域

namespace bit
{
	int a = 1;
}
// 展开命名空间
using namespace bit;

此时相当于将命令空间中的a暴漏在全局域中!

#include<stdio.h>
#include<stdlib.h>
#include&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一道秘制的小菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值