zoukankan      html  css  js  c++  java
  • 完美转发

    完美转发

    #include <iostream>
    #include <string>
    #include <utility>
    
    using std::cout;
    using std::endl;
    using std::string;
    
    class  Name
    {
    public:
        Name(const string & aName) :name{aName}
        {
            cout << "Lvalue Name constructor." << endl;
        }
    
        Name(string && aName) :name{ std::move(aName) }
        {
            cout << "Rvalue Name constructor." << endl;
        }
        
        const string & GetNmae()const
        {
            return name;
        }
    
    private:
        string name;
    
    };
    
    
    class Person
    {
    public:
        template<typename T1,typename T2>
        Person(T1 && first, T2 && second) :firstname{ std::forward<T1>(first) }, seondname{ std::forward<T2>(second) }
        {
            cout << "-------------------" << endl;
        }
    
        string getName()const
        {
            return firstname.GetNmae() + " " + seondname.GetNmae();
        }
    
    private:
        Name firstname;
        Name seondname;
    };
    
    int main()
    {
        Person me{ string{"Ivor"},string{"Horton"} };
        cout << me.getName() << endl << endl;
    
        string first{"Fred"};
        string second{"Fernackerpan"};
        Person other{first,second};
        cout << other.getName()<< endl << endl;
    
        Person brother{ first,string{"Bloggs"} };
        cout << brother.getName() << endl << endl;
    
        Person another{"Richard","Horton"};
        cout << another.getName() << endl;
    }

    输出结果:

    Rvalue Name constructor.
    Rvalue Name constructor.
    -------------------
    Ivor Horton

    Lvalue Name constructor.
    Lvalue Name constructor.
    -------------------
    Fred Fernackerpan

    Lvalue Name constructor.
    Rvalue Name constructor.
    -------------------
    Fred Bloggs

    Rvalue Name constructor.
    Rvalue Name constructor.
    -------------------
    Richard Horton

  • 相关阅读:
    VuGen错误处理函数
    LR的日志
    创建性能测试脚本时如何选择HTML模式和URL模式
    Java变量
    查找&排序
    selenium执行JS
    Python中 is 和 == 的区别
    Python中 and or的计算规则
    selenium使用location定位元素坐标偏差
    错误:Could not find an available JavaScript runtime
  • 原文地址:https://www.cnblogs.com/yunqie/p/5958143.html
Copyright © 2011-2022 走看看