我正在尝试将某人的出生日期,月份和年份添加到课堂上。截至目前,我正试图包括出生日期,有很多错误,设法消除了大多数错误,但我仍然遗漏了这个错误(起初,我在同一天,月份和出生年份,但我有很多错误,所以我决定尝试修复其中至少一个)。在代码中,我还将生日作为一个字符,并且可以正常工作,但我需要这些值以后才能使用它们。
#include <iostream>
#include <cstring>
using namespace std;
class Persoana
{
private:
char nume[20];
char data_nastere[20];
int zi;
public:
Persoana(char *nume="", char *data_nastere="", int zi="");//this is where i have the error
void setNume(char *nume);
char* getNume();
void setDataNastere(char *data_nastere);
char* getDataNastere();
void setZi(int zi);
int getZi();
void afisare();
};
Persoana::Persoana(char *nume, char *data_nastere, int zi)
{
setNume(nume);
setDataNastere(data_nastere);
setZi(zi);
}
void Persoana::setNume(char *nume)
{
strcpy(this->nume, nume);
}
char* Persoana::getNume()
{
return nume;
}
void Persoana::setDataNastere(char *data_nastere)
{
strcpy(this->data_nastere, data_nastere);
}
char* Persoana::getDataNastere()
{
return data_nastere;
}
void Persoana::setZi(int zi)
{
this->zi=zi;
}
int Persoana::getZi()
{
return zi;
}
void Persoana::afisare()
{
cout<<"Nume: "<<nume<<endl;
cout<<"Data nasterii este: "<<data_nastere<<endl<<endl;
cout<<zi<<endl;
}
int main()
{
Persoana p[] = {Persoana("Calin Dorina", "12 02 2000", 12), Persoana("Mihaela Banu", "25 04 2001", 25)};
p[0].afisare();
//p[1].afisare();
}
答案 0 :(得分:0)
您尝试将一个指向文字字符串的指针(它是指向const char的指针,该字符串在此字符串中是首字母)分配给构造函数z
中的整数属性int zi=""
。 C ++尚未默认从const char*
转换为int
。您应该为整数属性使用整数默认值。
答案 1 :(得分:0)
你们当中有人说要声明int zi = 0,这就是正确的答案。我尝试过这样做,但是在这里声明了私有变量。感谢您的帮助!
如果其他人有这个问题,这里应该是这样:
Persoana(char * nume =“,char * data_nastere =”“,int zi = 0);