C++11中怎么引用限定成员函数

本篇文章为大家展示了C++11中怎么引用限定成员函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

曳光弹类

根据需要的不同,代码也会有所不同。

C++11中怎么引用限定成员函数

代码除了实现了,构造函数、析构函数以外,还

  1. 实现了setText和output两个方法用于修改内容和输出内容

  2. 重载了+=运算符和+运算符用于对象连接

参照代码

作为后面内容的铺垫,考虑下面的代码:

C++11中怎么引用限定成员函数

代码中生成了t1,t2连个实例,然后将二者相加并输出。值得注意的是:t1+t2的结果并没有传递给另外的对象而是直接调用output方法,输出结果可以参照下图,主要关注“================“之间的部分。

C++11中怎么引用限定成员函数

首先创建了一个临时对象,输出以后立刻被销毁。这个对象就是一个右值,通过对右值调用对象方法可以的到正确的输出。如果我们的目的就是输出结果的话,没有任何问题。

上面的例子中对一个右值调用了output方法,看起来很自然,但是调用其他的函数就不一定那么自然了。例如下面的代码对t1+t2的结果调用了setText方法:

C++11中怎么引用限定成员函数

输出结果如下:

C++11中怎么引用限定成员函数

虽然setText方法被正常调用,但是这个对象马上被销毁了而无法访问。换句话说这是一段无效代码。相信这也不是程序员的本意。

引用限定符(reference qualifier)

目的很简单,就是希望加一个限制,使得右值对象不能调用setText方法。手段也同样简单,只要在方法签名的后面添加一个“&“,就可以通知编译器,这个函数只对左值(引用)有效。就像下面这样:

C++11中怎么引用限定成员函数

添加了引用限定以后,下面的代码就会产生编译错误。

C++11中怎么引用限定成员函数

上述内容就是C++11中怎么引用限定成员函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。