zoukankan      html  css  js  c++  java
  • C++11 特性:成员函数引用限定 (Reference qualifier)

    学了这么多年C++今天拜读scott meyes的more effective cpp第一次看到这种写法...

    引用限定可以让成员函数只能被左值对象调用或者只能被右值对象调用:

    #include <iostream>
    
    struct Test {
        void workLvalue() & {
            std::cout << " work only if object was a lvalue
    ";
        }
        void workRvalue() && {
            std::cout << " work only if object was a rvalue
    ";
        }
    };
    
    int main() {
        Test t;
        t.workLvalue();     //ok
        
        t.workRvalue();     //不能编译
    
        Test{}.workRvalue();//ok
        Test{}.workLvalue();//不能编译
        return 0;
    }
    

    换句话说,引用限定所限定的就是*this,它可以让一些函数只被左值this调用或者右值this调用。

  • 相关阅读:
    Add Binary
    Java笔记之String
    Java笔记之数组
    Merge Two Sorted Lists
    Remove Nth Node From End of List
    Longest Common Prefix
    Roman to Integer
    Palindrome Number
    Reverse Integer
    _cdel stdcall
  • 原文地址:https://www.cnblogs.com/ysherlock/p/9156734.html
Copyright © 2011-2022 走看看