zoukankan      html  css  js  c++  java
  • 引用限定符(c++11)

    1.概念

    1)下面这种情况将对一个右值调用成员函数、对右值赋值

    string s1 = "abc", s2 = "def";
    auto n = (s1 + s2).find('a');    //对右值调用成员函数
    s1 + s2 = "wc";        //对右值赋值

    2)旧标准中,没有办法阻止这种使用方式,c++11下,为了维持向后的兼容性,仍然允许向右值调用成员函数、向右值赋值,但是提供了一种阻止的方法:使用引用限定符&和&&来指明成员函数的this指针指向的是左值还是右值

    class A {
    public:
        //和const成员函数中的const一样,在成员函数的参数列表后加&或&&(必须同时出现在声明和定义中)来限定this指针
        //成员函数参数列表后既有const又有引用限定符的话,引用限定符必须在const限定符后面
        A& operator=(const A&) &;
    };

     

  • 相关阅读:
    “访问”美术馆
    加分二叉树
    有线电视网
    二叉苹果树
    鬼子进村
    遍历问题
    最大子树和
    FBI树
    求前序遍历
    JS如何实现点击页面内任意的链接均加参数跳转?
  • 原文地址:https://www.cnblogs.com/Joezzz/p/9719852.html
Copyright © 2011-2022 走看看