Pagina 1 di 1

[C++]Problema con parametro di funzione

MessaggioInviato: 11 apr 2017, 23:18
da TardoFreak
Ho scritto una classe che vuole, nel costruttore, le funzioni per l'input e l'output di un carattere.
Codice: Seleziona tutto
LineEditor(int (*leggiChFnc)(void),void (*scriviChFnc) (char ch));

Nella dichiarazione dei membri pubblici ho inserito le dichiarazioni
Codice: Seleziona tutto
  int (*leggiCh)(void);
  void (*scriviCh)(char ch);
  int (*leggiChFnc)(void);
  void (*scriviChFnc)(char ch);

Nel costruttore assegno le funzioni passate come argomento a quelle che uso all'interno
Codice: Seleziona tutto
void LineEditor::begin(int (*leggiChFnc)(void), void (*scriviChFnc)(char ch)) {
  clearData();
  leggiCh = leggiChFnc;
  scriviCh = scriviChFnc;
}

Va tutto bene ma quando provo a chiamare (all'interno della classe)
Codice: Seleziona tutto
scriviCh("\r");

Mi da l'errore di compilazione
Codice: Seleziona tutto
invalid conversion from 'const char*' to 'char' [-fpermissive]

A me questa cosa sembra strana.
C'è modo per rimediare a questo problema?

Re: [C++]Problema con parametro di funzione

MessaggioInviato: 11 apr 2017, 23:20
da simo85
Codice: Seleziona tutto
scriviCh('\r');


Perché hai dichiarato che come argomento accetti un char e non un puntatore char.

Re: [C++]Problema con parametro di funzione

MessaggioInviato: 11 apr 2017, 23:23
da CarloCoriolano
Non so se coi parametri di compilazione e` bypassabile, non ricordo, ma, in ogni caso dichiara nell'header che il metodo puo` ricevere un carattere di tipo const.
Codice: Seleziona tutto
void (*scriviChr)(const char c);


Oppure, se il compilatore lo ammette, io userei l'overload, dichiarando tutte le varianti possibili...

Re: [C++]Problema con parametro di funzione

MessaggioInviato: 11 apr 2017, 23:23
da TardoFreak
E' vero Foto Utentesimo85, che cantonata!
Questo significa che devo chiudere l'IDE ed andare a dormire perché sono cotto. :?

Re: [C++]Problema con parametro di funzione

MessaggioInviato: 11 apr 2017, 23:59
da Piercarlo
Consiglio ai novizi: evitare di abusare di EY fino a notte fonda: induce dipendenze quasi incurabili! :mrgreen: ;-)

Re: [C++]Problema con parametro di funzione

MessaggioInviato: 12 apr 2017, 0:14
da CarloCoriolano
Ed i vecchizi?

Re: [C++]Problema con parametro di funzione

MessaggioInviato: 12 apr 2017, 0:20
da Piercarlo
All'ospizio per assicurargli un meritato riposo dopo una lunga e dura vita di lavoro... Con infermiera dai modi gentili ma decisi che gli impedisce di andar a disturbare le vecchizze di notte...