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

    有程序:

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 class ClassA
     6 {
     7     public:
     8         ClassA(int i = 0) {x = i;}
     9         ClassA(const ClassA& t)
    10         {
    11             x = t.x;
    12             cout << "调用拷贝构造函数" << endl;
    13         }
    14         ClassA& operator = (const ClassA& t)
    15         {
    16             cout << "调用赋值函数" << endl;
    17             if(this != &t) x = t.x;
    18             return *this;
    19         }
    20     private:
    21         int x;
    22 };
    23 
    24 int main()
    25 {
    26     ClassA ca(1);
    27     ClassA cb;
    28     cb = ca; //(1)
    29     ClassA cc = ca; //(2)
    30     return 0;
    31 }

    运行结果:

    调用赋值函数
    调用拷贝构造函数


    语句(1)处使用赋值运算,但是(2)使用的是初始化而非赋值,C++规定创建对象时必须进行初始化,而拷贝构造函数和构造函数用以进行对象的初始化,这里使用一个对象给另一个对象进行初始化,调用拷贝构造函数。

  • 相关阅读:
    vagrant
    webapp开发
    UIViewAnimationOptions swift 2
    swift 2
    autolayout 总结
    apache 403错
    hadoop配置优化
    hadoop配置优化
    使用spark访问elasticsearch的数据
    使用spark访问elasticsearch的数据
  • 原文地址:https://www.cnblogs.com/cszlg/p/2910427.html
Copyright © 2011-2022 走看看