no, utilizzi da "fuori" con obj1.variabileinterna solo quelle public
-
Prova a modificare la tua classe. Hai 2 variabili, k e y. Prova a rendere private una delle due. Ad esempio k
Ora obj1.k non sarà più accettato.
Questo serve per "nascondere" un dato interno all'oggetto/classe. Magari poi potresti fare una funzione che ne da il valore. In questo modo puoi leggere il valore ma non scriverlo. -
Quindi con k nascosto come fare per saperne il valore? Si potrebbe scrivere una funzione dentro la classe X:
class X
{
public:
void start();
void ok();
int GetK();
int y;
private:
int k;
};
...
void X::GetK()
{ return(k);
}
Nella loop() invece di:
Serial.println( obj1.k );
dovrai usare:
Serial.println( obj1.GetK() );