zoukankan      html  css  js  c++  java
  • C++ 复制构造函数

     1 #include <iostream>
     2 using namespace std;
     3 
     4 class ClassA
     5 {
     6     int member;
     7     
     8 public:
     9     ClassA (int x):member(x)
    10     {
    11         cout << "A构造:" <<member <<endl;
    12     }
    13     //ClassA(const ClassA obj):member(obj.member) //Error!!
    14     ClassA(const ClassA& obj):member(obj.member)
    15     {
    16         cout << "调用复制构造函数" << endl;
    17     }
    18     
    19     void showMember(int a)const //const关键字 表示本函数不会数据成员 
    20     {
    21         //member = a; //编译无法通过,因为尝试修改数据成员 
    22         cout << "不修改成员" << endl; 
    23     }
    24     
    25     friend ClassA Add(const ClassA a, const ClassA& b);
    26 };
    27 
    28 //习惯使用引用来避免参数复制,提高效率 ,使用const避免修改 
    29 ClassA Add(const ClassA a, const ClassA& b)
    30 {
    31     return ClassA(a.member + b.member);
    32 }
    33 
    34 int main(int argc, char *argv[])
    35 {
    36     ClassA a(10), b(20);
    37     Add(a, b); //自动调用构造函数输出结果 
    38     
    39     ClassA c = a; //调用复制构造函数 
    40     return 0;
    41 }
  • 相关阅读:
    构建之法阅读笔记02
    四则运算2
    第一周学习进度条
    简单四则运算
    构建之法阅读笔记01
    简读《构建之法》,所想问题展示
    介绍
    典型用户和用户场景描述
    工作总结03
    工作总结02
  • 原文地址:https://www.cnblogs.com/autumoonchina/p/3618124.html
Copyright © 2011-2022 走看看