oregon ha scritto:
Se continui con frasi del genere senza dare dettagli (messaggi d'errore o altro) non avrai tante risposte.
Hai corretto anche le linee precedenti a quella che ti ho indicato io e che ti ha segnalato @migliorabile?
Ha ragione, scusi, comunque ecco qui gli errori:
[Error] no matching function for call to 'Libro::inizializza(std::string [10], float [10], int [10], int [10], float [10])'
[Note] candidate is:
[Note] float Libro::inizializza(std::string*, float*, int*, int*, std::string*)
[Note] no known conversion for argument 5 from 'float [10]' to 'std::string* {aka std::basic_string<char>*}'
Allego anche il codice corretto:
#include <iostream>
#include <cstring>
using namespace std;
class Libro {
string nome_libro[10];
float costo[10];
int scaffale[10];
int numero_pagine[10];
string casa_editrice[10];
public:
float inizializza(string n[], float c[], int s[], int p[], string ce[])
{
nome_libro[10] = n[10];
costo[10] = c[10];
scaffale[10] = s[10];
numero_pagine[10] = p[10];
casa_editrice[10] = ce[10];
}
void stampa()
{
int i;
i=0;
for(i=0; i<=9; i++)
{
cout<<"Il nome del libro e\' "<<nome_libro[i]<<" e costa euro "<<costo[i]<<" ,si trova nello scaffale "<<scaffale<<" ,ha pagine n. "<<numero_pagine<<" ed e\' prodotto dalla "<<casa_editrice<<endl;
}
}
void applica_sconto()
{
int i;
i=0;
for(i=0; i<=9; i++)
{
float s;
float tot;
s=(costo[i]*10)/100;
tot=costo[i]-s;
cout<<"Lo sconto del libro n. "<<i<<" e\' uguale a: "<<tot<<endl;
}
}
};
int main()
{
Libro operatore;
string n[10];
float c[10];
int s[10];
int p[10];
string ce[10];
int i;
i=0;
for(i=0; i<=9; i++)
{
cout<<"Inserisci il nome del libro: ";
cin>>n[i];
cout<<"Quanto costa il libro?";
cin>>c[i];
cout<<"In quale scaffale si trova? ";
cin>>s[i];
cout<<"Quante pagine ha il libro? ";
cin>>p[i];
cout<<"Qual'e\' la casa editrice? ";
cin>>ce[i];
cout<<endl;
}
operatore.inizializza(n, c, s, p, c)
operatore.stampa();
operatore.applica_sconto();
}