home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C++ for Dummies (3rd Edition)
/
C_FD.iso
/
CHAP14
/
CHAP14_4.CPP
< prev
Wrap
C/C++ Source or Header
|
1996-09-02
|
956b
|
44 lines
// Chap14_3.cpp
// this version works properly
#include <iostream.h>
#include <string.h>
class Person
{
public:
Person(char *pN)
{
cout << "Constructing " << pN << "\n";
pName = new char[strlen(pN) + 1];
if (pName != 0)
{
strcpy(pName, pN);
}
}
//copy constructor allocates a new heap block
Person(Person &p)
{
cout << "Copying " << p.pName << " into its own block\n";
pName = new char[strlen(p.pName) + 1];
if (pName != 0)
{
strcpy(pName, p.pName);
}
}
~Person()
{
cout << "Destructing " << pName << "\n";
//letÆs wipe out the name just for the heck of it
pName[0] = '\0';
delete pName;
}
protected:
char *pName;
};
int main()
{
Person p1("Randy");
Person p2 = p1; //invoke the copy constructor...
return 0; //...equivalent to Person p2(p1);
}