[ create a new paste ] login | about

Link: http://codepad.org/mAWSgMpm    [ raw code | output | fork ]

C++, pasted on Apr 9:
#include <iostream>
#include <cstring>

using namespace std;

class Person
{
public:
    char * str;
    
    Person(Person& n)
    {
        cout << "copy constructor1 " << n.str << endl;
        int len;
        len = strlen(n.str);
        str = new char[len + 1];
        strcpy(str, n.str);
    }
    
    Person(const Person& n)
    {
        cout << "copy constructor2 " << n.str << endl;
        int len;
        len = strlen(n.str);
        str = new char[len + 1];
        strcpy(str, n.str);
    }

    Person(const char* s)
    {
        cout << "normal constructor" << endl;
        int len;
        len = strlen(s);
        str = new char[len + 1];
        strcpy(str, s);
    }

    ~Person()
    {
        cout << "destructor" << endl;
        delete[] str;
    }

    void display()
    {
        cout << str << endl;
    }
};

void whatName(Person n)
{
    n.display();
}

int main()
{
    Person p1("Jack");
    whatName(p1);
    whatName("Mary");
    return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
normal constructor
copy constructor1 Jack
Jack
destructor
normal constructor
copy constructor2 Mary
Mary
destructor
destructor
destructor


Create a new paste based on this one


Comments: