Creazione automatica di oggetti.
La creazione di una classe implica anche la creazione di un oggetto, ma a volte una libreria viene scritta per un solo oggetto (ad esempio, una libreria per lavorare con un'interfaccia) e la creazione di un oggetto in uno schizzo sembra codice extra. Ma, se apri qualche esempio usando la libreria Wire.h, non troverai lì la creazione dell'oggetto Wire, ma è usato. Per esempio:
#include <Wire.h>
void setup()
{
Wire.begin();
}
Usiamo l'oggetto Wire, ma non lo abbiamo creato. A volte può essere conveniente, come farlo, devi solo aggiungere una riga al file di intestazione:
extern nome_classe nome_oggetto;
E in file.cpp, se esiste, aggiungi:
nome_classe nome_oggetto = nome_classe();
Pertanto, l'oggetto verrà creato all'interno della libreria e saremo in grado di usarlo dallo schizzo. Esempio:
File <Creating_Object.h>
#pragma once
#include <Arduino.h>
class Creating
{
public:
int getMultiply(int value);
private:
};
extern Creating creatingObject;
File <Creating_Object.cpp>
#include <Creating_Object.h> // include il file di intestazione richiesto
int Creating::getMultiply(int value)
{
return value*5;
}
Creating creatingObject = Creating();
File <Creating_Object.ino>
#include <Creating_Object.h>
// l'oggetto non è stato creato
void setup()
{
Serial.begin(9600);
Serial.println(creatingObject.getMultiply(32));
}
void loop()
{
}
File keywords.txt
##################################
#Syntax Creating_Object
##################################
#File name and Class (KEYWORD1)
#################################
Creating_Object KEYWORD1
#################################
#Methods and Functions (KEYWORD2)
#################################
getMultiply KEYWORD2