美文网首页
函数引用饰词用法

函数引用饰词用法

作者: dhz120 | 来源:发表于2020-04-11 11:15 被阅读0次

说明:函数引用饰词用法其实跟用const修饰时差不多,即当对象是左值时,会调用左值的那个函数重载版本;当对象为右值时,会调用右值的那个函数重载版本

示例

#ifndef REFQUADEMO_H
#define REFQUADEMO_H

#include <iostream>
#include <vector>

using namespace std;

// 引用饰词练习, 用法跟用const修饰的差不多
namespace T15_NS {

class Widget
{
    using DataType = vector<int>;

public:
    // 仅当*this为左值时调用
    // 左值引用型别的重载版本,返回的是一个左值引用(即一个左值)
    DataType &data() & {
        cout << "DataType &data() & called\n";
        return m_datas;
    }

    // 仅当*this为右值时调用
    // 右值引用型别的重载版本,返回的是一个临时对象(即一个右值)
    DataType data() && {
        cout << "DataType data() && called\n";
        return move(m_datas);
    }

private:
    DataType m_datas;
};

// 工厂函数,返回右值
Widget makeWidget()
{
    return Widget();
}

void test()
{
    Widget w1;

    //  调用Widget::data的左值重载版本, d1采用拷贝构造完成初始化
    auto d1 = w1.data();

    //  调用Widget::data的右值重载版本, d1采用移动构造完成初始化
    auto d2 = makeWidget().data();


}

} // T15_NS

#endif // REFQUADEMO_H

相关文章

  • 函数引用饰词用法

    说明:函数引用饰词用法其实跟用const修饰时差不多,即当对象是左值时,会调用左值的那个函数重载版本;当对象为右值...

  • ts 数据类型

    数据类型 1. 基础类型数据 2. 引用类型 对象和数组对象和数组.png 函数函数修饰词.png

  • C++ - 类

    用法1:对象名.成员名 用法2:指针->成员名 用法3:引用名.成员名 成员函数体和类的定义分开写 类的成员函数的...

  • 漫谈iOS系列之:内存管理

    目录 引用计数(Reference Counting) MRC ARC 循环引用 Autorelease 修饰词 ...

  • 函数与公式,E战到底第十期学习

    函数与公式。 本节共有10个学习点, :函数的基本用法, :运算符号, :函数, :常用函数, :绝对相对引用f4...

  • 21天E战到底学习笔记Day11

    21天E战到底学习笔记Day11-认识函数,进阶用法 今天的学习内容继续是函数的基础知识,进阶用法, 一、绝对引用...

  • 2017-03-15 C++阶段

    Task List 1. 回顾引用与new用法 2. 学习模版template、重载函数、类(构造函数) Summ...

  • 2018-11-25

    今天主要学习认识函数的进阶用法 一、绝对引用和相对引用快捷键F4,符号$ 相对引用:引用的地址不是固定的,绝对引用...

  • Day11—认识函数(基础知识、绝对相对引用)(2019-11-

    认识函数(基础知识、绝对相对引用) 函数概述:常用共346个函数,常用的51个 一、基本用法: 1、公式:“=”连...

  • OFFice职场大学Excel十天精进训练营第八课认识函数

    认识函数 一、基本用法。 二、运算符 三、函数 四、常用函数 五、绝对、相对引用(4)重要 六、乘法口诀表。 七、...

网友评论

      本文标题:函数引用饰词用法

      本文链接:https://www.haomeiwen.com/subject/rvzemhtx.html