zoukankan      html  css  js  c++  java
  • c++拷贝构造函数

    转一篇博客:

    http://blog.csdn.net/lwbeyond/article/details/6202256/

    介绍拷贝构造函数很详细

    总结

    可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量

    拷贝构造函数也是构造函数

    调用了拷贝构造函数就不会调用构造函数

    #include <iostream>
    using namespace std;

    class A
    {
    public:
    string name;
    A(){name = "initial";}
    A(string a){name = a; cout << "create:" << name << endl;}
    A(const A &a){name = a.name + "copy"; cout << "create:" << name << endl;}

    };
    int main()
    {
     A a("a");
     A b(a);
    }

     输出结果是:

    create:a
    create:acopy

    说明拷贝构造时没有调用构造函数(相当于构造函数重载?)

    以下是拷贝构造函数一个应用,运行一次程序就知道是什么意思了

    #include <iostream>
    using namespace std;
    
    
        class CExample   
        {  
        private:  
         int a; 
         string name; 
          
        public:  
         //构造函数  
         CExample(string a)  
         {   
          name = a;
          cout<<"creat: "<< name <<endl;  
         }  
          
         //拷贝构造  
         CExample(const CExample& C)  
         {  
          name = C.name + "copy" ;  
          cout<<"create:"<< name <<endl;  
         }  
           
         //析构函数  
         ~CExample()  
         {  
          cout<< "delete: "<< name <<endl;  
         }  
          
             void Show ()  
         {  
                 cout<<a<<endl;  
             }  
        };  
          
        //全局函数,传入的是对象  
        void g_Fun(CExample C)  
        {  
         cout<<"test"<<endl;  
        }  
          
        int main()  
        {  
         CExample test("a");  
         //传入对象  
         g_Fun(test);  
          
         return 0;  
        }  

    程序输出是

    creat: a
    create:acopy
    test
    delete: acopy
    delete: a

    Cexample(Dexample)也是拷贝构造

  • 相关阅读:
    学习的成本
    .Net Framework Client Profile 和 .Net Framework的区别[转]
    惆怅的开始
    Android Json解析
    android键盘的Done按钮
    百度地图SDK v2.1.2使用方法
    使用百度地图SDK 这是之前版本 现在的sdk v2-1-2使用方法完全改变
    svn
    Android 图片相关
    Android开发 开启闪光灯 关键代码
  • 原文地址:https://www.cnblogs.com/hong2016/p/6638707.html
Copyright © 2011-2022 走看看