c++构造函数传参数失败

#include
#include
#include
using namespace std;
class Person{
public:
Person(string id="gdhs",string ="dsfsda" ,string ="" ,string ="",string ="" )
{
void setIdPerson(string id);
void setName(string na);
void setSex(string se);
void setBirthday(string bd);
void setHomeAddress(string ad);
}

    void Person::setIdPerson(string id)
    {
        IdPerson=id;
    }
    void setName(string na)
    {
        Name=na;
    }
    void setSex(string se)
    {
            Sex=se;
    }

    void setBirthday(string bd)
    {
        Birthday=bd;
    }

    void setHomeAddress(string ad)
    {
        HomeAddress=ad;
    }
    string getIdPerson()
    {
        return IdPerson;
    }
    string getBirthday()
    {
        return Birthday;
    }
    string getName()
    {
        return Name;
    }
    string getSex()
    {
        return Sex;
    }
    string getHomeAddress()
    {
        return HomeAddress;
    }
    /*void Person::input()
    {
        cout<<"输入人员信息:\n";
        cout<<"姓名:";cin>>Name;
        cout<<"\n身份证号:";cin>>IdPerson;
        cout<<"\n性别:";cin>>Sex;
        cout<<"\n生日:";cin>>Birthday;
        cout<<"\n家庭住址:";cin>>HomeAddress;
    }*/
    void Person::display()
    {
        cout<<"姓名:"<<getName()<<endl<<"身份证号:"<<getIdPerson()<<endl<<"性别:"<<getSex()<<endl<<"生日:"<<getBirthday()<<endl<<"家庭住址:"<<getHomeAddress()<<endl;
    }
private:
    string IdPerson;
    string Name;
    string Sex;
    string Birthday;
    string HomeAddress;

};
int main()
{
cout<<"**********人员信息录入***********"<<endl;
Person p1("fdsfsd");
//p1.input();
p1.display();
system("pause");
return 0;
}
为什么构造函数中的默认函数传不进去?

这段代码错误比较多,你讲构造函数的中具体执行的操作都写在了声明当中,函数定义中又声明了几个函数,感觉对构造函数的具体用法还不是特别清楚。

推荐资料C++构造函数详解
你可以看完后在来写一下这段代码

你构造函数定义都不对,先补补CPP基础

构造函数定义的有问题,看看C++ Primer,补补基础吧

Person(string id="gdhs",string ="dsfsda" ,string ="" ,string ="",string ="" )
很明显这个是你重载的构造函数,默认的是Person();
按照你的想法是,如果在定义一个Person类型的对象时,如果没有给出全部参数的时候采用默认的参数值
Person(string id="gdhs",string na="dsfsda" ,string se="se" ,string bd="bd",string ad="ad" )
你上面的没有写出形参名,不知道是不是你贴代码的时候掉了
最后是Person p1("fdsfsd");
默认是将fdsfsd的值赋给id
不知道是否能帮到你,还是建议遇到这些问题,可以自己先看看书,研究一下。
这些东西,不是很难,都是一些规范和定义

构造函数的定义就错啦,好好看看书吧。

首先,代码有很多错误和可以修改的地方,属于基础知识掌握不到位。
其次,默认参数这种方法是不建议使用的,容易造成重载混淆,也不利于代码的可读性,维护性。
最后,如果确认需求是可以只输入几项信息,其他的可以省略,那么选择直接重载构造函数,并使用初始化列表的方式。