I'm not a newbie, but this sound's like a newbie question.
Copy constructors and assignment operators can have a lot of code in common.
When written for classes that contain a large number of variables, duplicating everything could be difficult.
Is it safe to use a an assignment operator in a copy constructor? This would allow a single function to do the heavy lifting.
One issue would be the handling of a pointer which would have to be initialized to NULL in the copy constructor before the assignment operator is called.
It's imperative to set those pointers to NULL in the copy constructor.
I believe this is legal, though I would prefer implementing it the other way around using the copy-and-swap idiom, as the copy constructor can benefit from, for example, direct construction of its members via the initializer list.
Something else about your code however:
On line 6, you try to check if the address of record is NULL, which makes no sense. You cannot have a null reference by definition; if you actually have an object anyway it's address could not possibly be null. Ditto for line 23.
On line 21, you check if this is NULL, which is not necessary as calling a method on a null pointer is undefined behavior anyway.