c++ ---- using

using 的使用分为using指示与using声明。

避免在头文件使用using,最多也只能在函数或命名空间中使用。

1、using 声明

有效范围:从声明处至所在作用域结束。

using声明可以控制哪些名字是可见的。这种使用非常广泛:

如:

①在函数中,或在cpp文件中使用using std::cin;

②在派生类中使用using使基类成员可见。这种用法一般用在 私有继承 和 成员隐藏。

class Base
{
public:
    int a
}

class D : private Base
{
}
此时D中的a是private属性,如果我们想把它转成public属性,则需要使用如下代码

public:
using Base::a;

再看下面的代码

class base
{
public:
    void func() {}
}

class d : public base
{
public:
// 注意!!!与上面那个函数不一样!!!
    func(int) {}
}

int main()
{
    base b;
    d;
    b.func();
    d.func(); // 错误!!!!!成员隐藏
}
在派生类D中,是看不到func()无参函数的,因为它被有参函数func(int)隐藏了!如果要解决这个问题,可以用using声明。

public:
using base::func; // using 声明只能带一个名字,不能带参数。



using声明语句可以出现在全局作用域,局部作用域,命名空间作用域,以及类作用域。


2、using 指示。其实就是using namesapce name;

无法控制部分名字可见,因为所有名字都是可见的。

using指示可以出现在全局作用域,局部作用域,命名空间作用域,但不能出现在类作用域。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值