拷贝构造函数完全可以照着构造函数写

#include <iostream>
#include <cstring>
#pragma warning(disable : 4996)
using namespace std;

class Person {

  public:
    char* name; // 姓名
    int age;    // 年龄

    Person(const char* name, int age) {
        this->name = new char[strlen(name) + 1];
        strcpy(this->name, name);
        this->age = age;
    }

    Person(Person& another);


    void showPerson() {
        cout << name << " " << age << endl;
    }

    ~Person() {
        if (name != nullptr) {
            delete[] name;
            name = nullptr;
        }
    }

};
Person::Person(Person& another) {
    this->name = new char[strlen(another.name) + 1];
    strcpy(this->name, another.name);
    this->age = another.age;
}
int main() {

    char name[100] = { 0 };
    int age;

    cin >> name;
    cin >> age;

    Person p1(name, age);
    Person p2 = p1;

    p2.showPerson();

    return 0;
}