天天看點

008--C++養成之路(拷貝構造函數)

#include<iostream>
using namespace std;
class Complex{
  double m_real;
  double m_vir;
public:
  Complex(double real){
    m_real = real;
    m_vir = 0;
  }
  Complex(Complex const& that){//拷貝構造函數
    m_real = that.m_real;//拷貝對象就是拷貝對象裡的成員變量
    m_vir = that.m_vir;
  }
  void print(){
    cout << m_real << "+" << m_vir << "i" << endl;
  }
};
int main(){
  Complex c1 = 1.4;//隐式調用拷貝構造函數
  c1.print();
  //Complex c2 = c1;//隐式調用拷貝構造函數
  Complex c2(c1);//顯示調用拷貝構造函數
  c2.print();
  Complex* c3 = new Complex(c2);
  c3->print();
  getchar();
  return 0;

}