C++(11):成员函数饰词

C++11为成员函数提供了通过左值调用还是右值调用的装饰词:

cpp 复制代码
#include <iostream>
using namespace std;
 
class A{
	public:
	void fun() &{
		cout << "fun() &" << endl;
	}
	void fun() &&{
		cout << "fun() &&" << endl;
	}

};

A createA(){
	return A();
}

int main(){
 
	A a;
	a.fun(); // 调用 fun() &
	createA().fun(); // 调用 fun() &&
	
	return 0;
}

运行程序输出:

fun() &

fun() &&

可见通过这种方式,我们可以区分通过左值还是右值来调用成员函数。

相关推荐
神仙别闹1 分钟前
基于C++ 实现 L 系统分形树
开发语言·c++
INGNIGHT1 小时前
1584.连接所有点的最小费用(最小生成树&并查集union find)
c++·leetcode
wabs6661 小时前
关于二叉树【力扣144.二叉树的前序遍历的思考】
数据结构·c++·算法·leetcode·二叉树
zmzb01031 小时前
C++课后习题训练记录Day199
开发语言·c++
人邮异步社区1 小时前
如何系统地学习 C++ 语言?
开发语言·c++·学习
欧特克_Glodon2 小时前
OpenCV计算机视觉开发入门与实践<二十>:非线性变换灰度变换
c++·人工智能·opencv·计算机视觉
1000世界小札7 小时前
《大话数据结构》第9章精读:归并排序与快速排序完整 C++ 实现
数据结构·c++·算法
2601_9561219710 小时前
背包基础篇(01、完全、分组、多重、混合)
c++·算法·动态规划
fpcc10 小时前
跟我学C++中级篇——编译期的条件选择
开发语言·c++
ShineWinsu15 小时前
对于C++:C++20中线程、初始化、Lambda与内存视图等特性的解析
c++·c++20