C++类与联合,写类Name,包含两个数据成员last-name和first-name

C++:类Name有两个数据成员:last-name和first-name,分别用来记录人的姓,名,构造函数Name()被重载成三种形式:无参数的构造函数Name(),带一个参数的 Name(char *),带两个参数的Name(char *,char *)怎么写呀

参考GPT和自己的思路:可以按照以下方式来定义类Name和构造函数:

class Name {
private:
    std::string last_name;
    std::string first_name;

public:
    // 无参构造函数
    Name() {
        last_name = "";
        first_name = "";
    }

    // 带一个参数的构造函数
    Name(char* fname) {
        first_name = fname;
        last_name = "";
    }

    // 带两个参数的构造函数
    Name(char* lname, char* fname) {
        last_name = lname;
        first_name = fname;
    }
};

在该实现中,数据成员last_name和first_name都是字符串类型。无参构造函数Name()会将两个数据成员都设置为空字符串。带一个参数的构造函数Name(char*)会将first_name设置为提供的字符串,而将last_name设置为空字符串。带两个参数的构造函数Name(char*, char*)会将last_name设置为提供的第一个字符串,而将first_name设置为提供的第二个字符串。

希望这个答案能够帮到你。

class Name 
{
private:
    char first_name[20];
    char last_name[20];
    
public:
    Name() 
    {
        memset(first_name,0,20);
        memset(last_name,0,20);
    }
    Name(char* firstName) 
    {
       strcpy(first_name,firstName);
       memset(last_name,0,20);
    }

    Name(char* firstName, char* lastName) 
    {
         strcpy(first_name,firstName);
         strcpy(last_name,lastName);
    }
};

int main()
{
    char firstname[20],lastname[20];
    cin>>firstname>>lastname;
    Name name(firstname,lastname);
}