从`const char [2]'转换非标量类型`Persona'要求

时间:2017-08-20 22:43:01

标签: c++ const

Tengo un problema con este codigo en Dev-C ++ 4.9.9.2,intentando hacer una lista me arroja este error:

conversion from `const char[2]' to non-scalar type `Persona' requested 

Y este es el codigo que tengo:

#include<iostream>
#include<string>
#include<iomanip>

using namespace std;
struct Persona

{
string Nombre;
string NumeroTelefono;
Persona *sigDireccion;
};

void mostrar(Persona *);

int main(){
    Persona p1=("a","1");
    Persona p2=("b","2");
    Persona p3=("c","3");
    Persona *primera;
    primera=&p1;
    p1.sigDireccion=&p2;
    p2.sigDireccion=&p3;
    p3.sigDireccion=NULL;
    mostrar(primera);
    return 0;}

void mostrar(Persona *contenido)

{
         while(contenido!=NULL){
                                cout<<endl<<setiosflags(ios::left)
                                <<setw(30)<<contenido->Nombre
                                <<setw(20)<<contenido->NumeroTelefono;
                                contenido=contenido->sigDireccion;
                                }
                                }

Ya intente hacer el cambio con

Persona* p1=("a","1");

Pero me sigue marcando el error en main lo compilo y guardo en .cpp Como soluciono esa parte?

1 个答案:

答案 0 :(得分:1)

该行

Persona p1=("a","1");

相当于:

Persona p1="1";

因为括号和逗号运算符。这解释了编译器错误。 LHS是Persona类型的对象,RHS类型为const char[2]

您需要使用的是:

Persona p1("a","1");

Persona p1={"a","1"};