Buenos días,
Estoy comenzando con el uso de clases y distintos archivos (.h y .cpp) y me generan una cuantas dudas. Estoy realizando una programación para entender el uso de estas y cómo se comunican. Pongo un ejemplo de lo que estoy trabajando para ser más claro.
Clases.ino
#include "CrearObjetos.h"
void setup() {
CrearObjetos();
}
void loop() {
}
Lo único que hace es llamar a una función para crear objetos. No creo que sea la forma más correcta de crear objetos pero lo estoy haciendo así para entender la comunicación entre clases.
CrearObjetos.h
#include "Memoria.h"
void CrearObjetos() {
Memoria memoria;
}
No quiero volver a crear ningún objeto Memoria. Solamente la creo aquí y a partir de ahora quiero hacer referencia a este objeto.
Memoria.h
#include <SoftwareSerial.h>
class Memoria {
private:
String _sd = "";
public:
void actualizarMemoria(String memoria);
};
Memoria.cpp
#include "Memoria.h"
void Memoria::actualizarMemoria(String memoria) {
_sd = memoria;
}
Ahora que tengo creado el objeto me gustaría llamarlo desde otro fichero. Pongo un ejemplo:
Ejemplo.h
void comunicacionFicheros() {
//Aquí intento ejecutar la función actualizarMemoria(String) del objeto memoria creado anteriormente
}
Ya sé que no he referenciado en ningún sitio ejemplo.h, lo que me gustaría es saber como puedo utilizar la función actualizarMemoria() y que modifique la variable _sd de ese objeto en concreto.
Ejemplo2.h
#include "Memoria.h"
Memoria memoria; //ERROR
void comunicacionFicheros() {
memoria.actualizarMemoria("gracias por la ayuda") ;
}
El Ejemplo2.h me daría error ya que estaría creando otro objeto Memoria memoria. Podría crear un objeto Memoria mem pero es otro objeto, y yo al que quiero acceder es a memoria, no a mem.
He estado leyendo por algunos foros el uso de punteros o del extern pero no he sido capaz de llegar a comunicarlos.
Un saludo y muchas gracias