【问题标题】:errror: invalid conversion from 'const char*' to 'int'错误:从 'const char*' 到 'int' 的无效转换
【发布时间】:2020-04-04 09:31:02
【问题描述】:

我正在尝试将一个人的出生日期、月份和年份添加到课程中。截至目前,我正在尝试包括出生日期,有很多错误,设法摆脱了大部分错误,但我仍然剩下这个(起初,我同时包括了日期、月份和出生年份,但我有很多错误,所以我决定尝试修复其中至少一个)。在代码中,我也将出生日期设置为 char,这可以正常工作,但我需要这些值稍后才能使用它们。

#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();
}

【问题讨论】:

  • "" 应该是什么整数?
  • 您正在尝试将默认值 char* 设置为整数参数。您的意思可能类似于int zi = 0

标签: c++


【解决方案1】:

您尝试将指向文字字符串的指针(它是指向 const char 的指针,这是该字符串中的第一个字母)分配给构造函数中的整数属性 zint zi=""。 C++ 没有从const char*int 的默认转换。您应该为整数属性使用整数默认值。

【讨论】:

    【解决方案2】:

    你们中的一个人说要声明 int zi=0,这就是正确的答案。我之前尝试过这样做,但是我声明了私有变量。感谢您的帮助!

    如果其他人有这个问题,这就是它应该是这样的:

    Persoana(char *nume="", char *data_nastere="", int zi=0);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      相关资源
      最近更新 更多