c++:using的声明和编译指令

一.using的声明

        1.1 using的作用

                让某个命名空间下的标识符都可以直接使用

             在我们定义变量时可能会定义很多个变量,那么在调用时,就要使用作用域标识符,每调用一次就要写一次很麻烦,所以可以使用using

#pragma once
#include<iostream>
using namespace std;
namespace A{
    int a = 10;
    int b = 20;
    int c = 30;
}
int main(){
    cout<<A::c<<endl;
}
int main(){
 using A::a;//在使用using 声明A::a之后可以直接调用a,不用作用域::了
 cout<<a<<endl;
}

        1.2 注意

             在A::a下,再次定义变量会冲突报错;

             报错的原因是:

    using A::a的作用是声明一个a,把namespace A{int a = 10;}中的a = 10;放到int main中

    所以这是mian()函数中有两个局部变量,所以会冲突

namespace A{
    int a = 10;
    int b = 20;
    int c = 30;
}
int main(){
 using A::a; //这里A::a也是局部变量
//在使用using 声明A::a之后可以直接调用a,不用作用域::了
 cout<<a<<endl;
int a =100; //a=100是局部变量,这里会报错
}

 二.using的使用办法/编译指令

        using可以直接声明命名空间A,这样A下的所有变量都可以直接使用

#pragma once
#include<iostream>
using namespace std;
namespace A{
    int a = 10;
    int b = 20;
    int c = 30;
}
int main(){
    using namespace A; //这里是将A放到mian()里,a任是全局变量
    //可以直接用using声明命名空间A,这样A下的变量都可以直接使用
    cout<<a<<endl;
    cout<<b<<endl;
    cout<<c<<endl;
    int a = 100; //这里不会报错,a是局部变量
}

这里不报错的原因是: using namespace A;是将A放到mian()里,但a的作用域cout<<a<<endl;任是全局变量,在声明一个 int a = 100;//是局部变量,一个全局变量和一个局部变量不会冲突。

三. 标准命名空间

using namespace std;

这句话的意思是,允许c++使用一些标准的指令,放在全局里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值