Brauche hilfe bei meinem Projekt ( invalid use of non-static member function )

Guten Tag,
ich Arbeite gerade an diesem rfid projekt und wollte einen anderen Tab als eine art “Datenbank” benutzen. Jedoch klappt es nicht wirklich so wie ich es mir erdacht habe.

C:\Users\BlackLotus\Desktop\Multi_Tab_Sketch\Multi_Tab_Sketch.ino: In function ‘void loop()’:

Multi_Tab_Sketch:54:29: error: invalid use of non-static member function

Serial.println(K.Kunde_1);

^

exit status 1
invalid use of non-static member function

Hier ist der Haupt-Sketch

#include <SPI.h>
#include <MFRC522.h>
#include "Kunden.h"

#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.


void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("Hello and Welcome to our self-helping station.");
  Serial.println("Please put your Card given by HNBK Corp. on the surface");
  Serial.println();

  
  K.Kunde_1();
}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "70 54 8D A7") // UID of the card/cards that you want to give access
  {
    Serial.println("Access Granted, Welcome dear customer");
    Serial.println(K.Kunde_1);
    Serial.println();
    Serial.println();
    Serial.println("------------------------------------------------------------------------------------------------------------");
    
    delay(1000);
  }
 
 else   {
    Serial.println();
    Serial.println("Not Registered");
    delay(2000);
  }



    
}

Und hier die Header-datei

class Kunden {

public:

  void Kunde_1() 
  {
      Serial.println("             Buyer:   Watson");
      Serial.println("             Price:   20 Euro");
      Serial.println("           Ammount:   2");
      Serial.println();
      Serial.println("Credit Card Number:   5580447224666461");
      Serial.println("   Issuing Network:   Mastercard");
      Serial.println("    Expirence Date:   09|2022");
      Serial.println("              Name:   Desir Arman");
      Serial.println("            Adress:   93 Pleasure Junction");
      Serial.println("           Country:   Ukraine");
  }

  void Kunde_2()
  {
      Serial.println("             Buyer:   Holmes");
      Serial.println("             Price:   2,99 Euro");
      Serial.println("           Ammount:   16");
      Serial.println();
      Serial.println("Credit Card Number:   6522452118547854");
      Serial.println("   Issuing Network:   Mastercard");
      Serial.println("    Expirence Date:   12|2020");
      Serial.println("              Name:   XYZ");
      Serial.println("            Adress:   Jackofskistrasse 124");
      Serial.println("           Country:   Deutschland");
  }

}; // Ende von class

Kunden K;

was mache ich Falsch?

   Serial.println(K.Kunde_1);

Was soll das sein? So ruft man keine Funktionen auf

Deine Klasse ist sehr seltsam. Normal hat man in der Klasse die Daten in Variablen/Konstanten. Und dann vielleicht eine Ausgabe-Methode die diese druckt.

Und Implementierung gehören bei sowas eigentlich nicht in den Header selbst, sondern in eine .cpp Datei

ok Danke

Du solltest Dir wirklich erst einmal überlegen, was Deine Klasse machen soll. Dann die dazu gehörigen Daten festlegen, und die Methoden zum Arbeiten mit den Daten. Für eine Datenbank mit mehreren Datensätzen sollte dann irgendwo ein Array liegen, das die Daten zu den einzelnen Kunden enthält. Entweder ein Array in der Klasse, dann muß bei jeder Methode der Array-Index als Parameter übergeben werden. Oder ein Array von Instanzen, dann wird die gewünschte Instanz als Array-Element ausgewählt.