C++使用另一个对象复制构造函数

#include iostreamusing namespace std;class Line {public:int getLength( void );Line( int len );// simple constructor

编程学习网为您整理以下代码实例,主要实现:C++使用另一个对象复制构造函数,希望可以帮到各位朋友。

@H_419_1@#include <iostream>

using namespace std;

class line {
   public:
      int getLength( voID );
      line( int len );             // simple constructor
      line( const line &obj);      // copy constructor
      ~line();                     // destructor

   private:
      int *ptr;
};

// Member functions deFinitions including constructor
line::line(int len) {
   cout << "normal constructor allocating ptr" << endl;

   // allocate memory for the pointer;
   ptr = new int;
   *ptr = len;
}

line::line(const line &obj) {
   cout << "copy constructor allocating ptr." << endl;
   ptr = new int;
   *ptr = *obj.ptr;  // copy the value
}

line::~line(voID) {
   cout << "Freeing memory!" << endl;
   delete ptr;
}

int line::getLength( voID ) {
   return *ptr;
}

voID display(line obj) {
   cout << "Length of line : " << obj.getLength() <<endl;
}

// Main function for the program
int main() {

   line line1(10);

   line line2 = line1;  // This also calls copy constructor

   display(line1);
   display(line2);

   return 0;
}
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐