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

  • 相关阅读:
    JS 中如何判断字符串类型的数字
    使用script的src实现跨域和类似ajax效果
    JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
    IOS上架截屏 屏幕快照
    IOS 证书失效
    80端口占用
    PHP环境 PDOException PDOException: could not find driver
    分布式部署
    AES 加密算法 跨语言
    AES 加密填充 PKCS #7
  • 原文地址:https://www.cnblogs.com/yunqie/p/5958143.html
Copyright © 2011-2022 走看看