Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[C++]Problema con parametro di funzione

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

2
voti

[1] [C++]Problema con parametro di funzione

Messaggioda Foto UtenteTardoFreak » 11 apr 2017, 23:18

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?
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

3
voti

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

Messaggioda Foto Utentesimo85 » 11 apr 2017, 23:20

Codice: Seleziona tutto
scriviCh('\r');


Perché hai dichiarato che come argomento accetti un char e non un puntatore char.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

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

Messaggioda Foto UtenteCarloCoriolano » 11 apr 2017, 23:23

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...
Avatar utente
Foto UtenteCarloCoriolano
1.446 3 4 7
---
 
Messaggi: 1023
Iscritto il: 24 mag 2016, 13:08

0
voti

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

Messaggioda Foto UtenteTardoFreak » 11 apr 2017, 23:23

E' vero Foto Utentesimo85, che cantonata!
Questo significa che devo chiudere l'IDE ed andare a dormire perché sono cotto. :?
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

3
voti

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

Messaggioda Foto UtentePiercarlo » 11 apr 2017, 23:59

Consiglio ai novizi: evitare di abusare di EY fino a notte fonda: induce dipendenze quasi incurabili! :mrgreen: ;-)
Avatar utente
Foto UtentePiercarlo
24,0k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 6718
Iscritto il: 30 mar 2010, 19:23
Località: Milano

0
voti

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

Messaggioda Foto UtenteCarloCoriolano » 12 apr 2017, 0:14

Ed i vecchizi?
Avatar utente
Foto UtenteCarloCoriolano
1.446 3 4 7
---
 
Messaggi: 1023
Iscritto il: 24 mag 2016, 13:08

2
voti

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

Messaggioda Foto UtentePiercarlo » 12 apr 2017, 0:20

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...
Avatar utente
Foto UtentePiercarlo
24,0k 6 11 13
G.Master EY
G.Master EY
 
Messaggi: 6718
Iscritto il: 30 mar 2010, 19:23
Località: Milano


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti