I can't comment on the C++, but as an OO design it seems to confuse two different objects.
You have a Person type (calling it "Record" is just unhelpful). Each Person has a name etc, and methods for accessing its attributes.
But then you have addRecord, search etc which make no sense as methods for an individual Person. They imply that you also have some Object that contains a number of Persons (eg Company, College, Team etc), and methods like addPerson or search should be defined in that Object, not in Person.