CS202 Copy Constructors
6
Copy Constructors
•//name.h interface 
•class name {
•  public:
•    name(char* = "");        //default constructor
•    name(const name &);      //copy constructor
•    ~name();                 //destructor
•    name &operator=(name &); //assignment op 
•  private:
•    char* ptr;  //pointer to name
•    int length; //length of name including nul char
•};
•
•#include "name.h"     //name.c implementation
•name::name(char* name_ptr) {   //constructor
•  length = strlen(name_ptr);   //get name length
•  ptr = new char[length+1];    //dynamically allocate
•  strcpy(ptr, name_ptr);       //copy name into new space
•}
•name::name(const name &obj) {  //copy constructor
•  length = obj.length;         //get length
•  ptr = new char[length+1];    //dynamically allocate
•  strcpy(ptr, obj.ptr);        //copy name into new space
•}
•
•
•