C++11中怎么引用限定成员函数
本篇文章为大家展示了C++11中怎么引用限定成员函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
曳光弹类
根据需要的不同,代码也会有所不同。
代码除了实现了,构造函数、析构函数以外,还
实现了setText和output两个方法用于修改内容和输出内容
重载了+=运算符和+运算符用于对象连接
参照代码
作为后面内容的铺垫,考虑下面的代码:
代码中生成了t1,t2连个实例,然后将二者相加并输出。值得注意的是:t1+t2的结果并没有传递给另外的对象而是直接调用output方法,输出结果可以参照下图,主要关注“================“之间的部分。
首先创建了一个临时对象,输出以后立刻被销毁。这个对象就是一个右值,通过对右值调用对象方法可以的到正确的输出。如果我们的目的就是输出结果的话,没有任何问题。
上面的例子中对一个右值调用了output方法,看起来很自然,但是调用其他的函数就不一定那么自然了。例如下面的代码对t1+t2的结果调用了setText方法:
输出结果如下:
虽然setText方法被正常调用,但是这个对象马上被销毁了而无法访问。换句话说这是一段无效代码。相信这也不是程序员的本意。
引用限定符(reference qualifier)
目的很简单,就是希望加一个限制,使得右值对象不能调用setText方法。手段也同样简单,只要在方法签名的后面添加一个“&“,就可以通知编译器,这个函数只对左值(引用)有效。就像下面这样:
添加了引用限定以后,下面的代码就会产生编译错误。
上述内容就是C++11中怎么引用限定成员函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341