gpt4 book ai didi

C++ 需要帮助使用自定义构造函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:54:47 25 4
gpt4 key购买 nike

C++ 新手,无法理解为什么 Visual Studio 不喜欢我的“HealthProfile person.setFirstName(first)”代码行。错误与“人”有关,错误是没有默认构造函数。这可能是显而易见的事情,但我的代码与我书中的代码几乎完全相同。提前致谢!

主要内容:

#include <iostream>
#include "HealthProfile.h"
using namespace std;

int main()
{
string first;
HealthProfile person;

cout << "Enter first name" << endl;
getline(cin,first);
person.setFirstName(first);

}

标题:

#include <string>
using namespace std;

class HealthProfile
{
public:
HealthProfile(string, string, string, int, int, int, int, int);
void setFirstName(string);
string getFirstName();
void setLastName(string);
string getLastName();
};

功能:

#include <iostream>
#include "HealthProfile.h"

using namespace std;

HealthProfile::HealthProfile(string first, string last, string g,
int m, int d, int y, int h, int w)
{
setFirstName(first);
setLastName(last);
setGender(g);
setMonth(m);
setDay(d);
setYear(y);
setHeight(h);
setWeight(w);
}

void HealthProfile::setFirstName(string first)
{
firstName = first;
}
string HealthProfile::getFirstName()
{
return firstName;
}
void HealthProfile::setLastName(string last)
{
lastName = last;
}
string HealthProfile::getLastName()
{
return lastName;
}

最佳答案

setFirstName() 没有问题。问题是您已经声明了一个构造函数,该构造函数采用三个 strings 和五个 int,这会删除您在调用 HealthProfile person< 时使用的默认构造函数

解决方案是要么使用 HealthProfile 构造函数并向其传递三个 strings 和五个 int,要么声明并定义一个构造函数通过将 HealthProfile(){} 添加到 header 而不采用任何参数。

关于C++ 需要帮助使用自定义构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com