zoukankan      html  css  js  c++  java
  • C++使用引用来传递对像 畅想由我

    实例1:

    #include <iostream>
    using namespace std;
    class A
    {
    public:
    A(){cout<<"执行构造函数创建一个对像\n";}
    A(A&){cout<<"执行复制构造函数创建对像的副本\n";}
    ~A(){cout<<"执行析构函数删除对像\n";}
    void set(int i){x=i;}
    int get()const{return x;}
    private:
    int x;
    };
    //用const定义一个不能修改的指针并返回one值
    A& func(A & one)
    {
    return one;
    }
    int main()
    {
    A a;
    a.set(123);
    A &p=func(a);
    //p->set(111);这样给值是错误的,一定要在声明a对像时用a.set时给值
    cout<<p.get()<<endl;
    
    return 0;
    
    }
    

    结果:

    执行构造函数创建一个对像
    123
    执行析构函数删除对像


    实例2:

    #include <iostream>
    using namespace std;
    class A
    {
    public:
    A(){cout<<"执行构造函数创建一个对像\n";}
    A(A&){cout<<"执行复制构造函数创建对像的副本\n";}
    ~A(){cout<<"执行析构函数删除对像\n";}
    void set(int i){x=i;}
    int get()const{return x;}
    private:
    int x;
    };
    //用const定义一个不能修改的指针并返回one值
    A& func(A & one)
    {
    return one;
    }
    int main()
    {
    A a;
    a.set(123);
    A &p=func(a);
    //p->set(111);这样给值是错误的,一定要在声明a对像时用a.set时给值
    cout<<p.get()<<endl;
    p.set(567);
    cout<<p.get()<<endl;
    return 0;
    
    }
    

    结果:

    执行构造函数创建一个对像
    123
    567
    执行析构函数删除对像

    实例3:

    #include <iostream>
    using namespace std;
    class A
    {
    public:
    A(){cout<<"执行构造函数创建一个对像\n";}
    A(A&){cout<<"执行复制构造函数创建对像的副本\n";}
    ~A(){cout<<"执行析构函数删除对像\n";}
    void set(int i){x=i;}
    int get()const{return x;}
    private:
    int x;
    };
    //用const定义一个不能修改的指针并返回one值
    A& func(A & one)
    {
    return one;
    }
    int main()
    {
    A a;
    a.set(123);
    A const &p=func(a);
    //p->set(111);这样给值是错误的,一定要在声明a对像时用a.set时给值
    cout<<p.get()<<endl;
    //p.set(567);
    cout<<p.get()<<endl;
    return 0;
    
    }
    

    执行构造函数创建一个对像

    123
    123
    执行析构函数删除对像

    实例4: 修改后结果和实例3一样。

    #include <iostream>
    using namespace std;
    class A
    {
    public:
    A(){cout<<"执行构造函数创建一个对像\n";}
    A(A&){cout<<"执行复制构造函数创建对像的副本\n";}
    ~A(){cout<<"执行析构函数删除对像\n";}
    void set(int i){x=i;}
    int get()const{return x;}
    private:
    int x;
    };
    //用const定义一个不能修改的指针并返回one值
    const A& func(A & one)
    {
    return one;
    }
    int main()
    {
    A a;
    a.set(123);
    A const &p=func(a);
    //p->set(111);这样给值是错误的,一定要在声明a对像时用a.set时给值
    cout<<p.get()<<endl;
    //p.set(567);
    cout<<p.get()<<endl;
    return 0;
    
    }
    

      

    结果:
    执行构造函数创建一个对像
    123
    123
    执行析构函数删除对像

  • 相关阅读:
    仿百度排列图片预览插件-Simple Lightbox
    vue2.0移动端自定义性别选择提示框
    微信小程序踩坑记
    网页里如何使用js禁用F12事件
    使用 html2canvas 实现浏览器截图
    h5、jq 移动端评论点攒功能
    js 数字递增特效 仿支付宝我的财富 HTML5
    aos.js超赞页面滚动元素动画jQuery动画库
    简洁AngularJS框架后台管理系统bootstrap后台模板
    Ionic 的 ng-class 在聊天功能上面的巧妙运用
  • 原文地址:https://www.cnblogs.com/plan/p/2352064.html
Copyright © 2011-2022 走看看