C++中using的用法

大半夜闲看书,翻了几处也是巧,都看到了这个using,简单写写这个using在C plusplus中的使用。

1、引入命名空间

这个司空见惯了,写第一个程序hello world的时候,多半书籍都会给你写这么一句:

using namespace std;

引入命名空间std的意思,这样在这个引入命名空间的范围内,使用函数时就不用再标明其出处,可以理解为告诉编译器,我从哪里来,你就到这个地方找我吧。这样就不会在调用多个同名函数的时候搞错了,A和B空间下的函数是不一样的,using A就去A下找吧,别犯错误迷路了去B下找这就错了。

2、类型别名

在C++11新标准中,采用using来给类型取一个别名,这样就好记了,避免有的名字过于繁琐在用的时候还要写原名。比如:
列宁同志的原名:弗拉基米尔·伊里奇·乌里扬诺夫,你记得住???but 大家想了下,那就叫你列宁吧,这样好记啊,叫起来也方便不是。回到我们的using上来,比如有个类名为THE_FOOTBALL_TEAM_LIST,多长,你用啊,给它取个别名吧

using TFTL = THE_FOOTBALL_TEAM_LIST;

3、在子类中引入基类的成员

最常见的一个例子就是继承构造

class Base
{
public:
	int _value;
	Base(){}
	Base(int a){_value = a; cout <<_value<

再者一种情况:

class Base {
public:
std::size_t size() const { return n; }
protected:
std::size_t n;
};
class Child : private Base { . . . };

在上面一段代码中,基类的成员size()是个public成员,但是在子类中由于继承是private方式,所以子类的size()是private,想让它是public的,就做下面的一个小改动,加上using后,表明从基类中引入,是public的。

class Child: private Base {
public:
using Base::size;
protected:
using Base::n;
};

还有就是假如子类中有和基类同名的函数,这时还想用基类的函数,就可以使用using,不然就会隐藏基类的函数。

#include 
using namespace std;

class Base
{
public:
    int printTest(){cout<<"Test function"<

你可能感兴趣的:(C++)