Wpis z mikrobloga

#programowanie #cpp

Mirki, dlaczego jeżeli mam 2 pliki:

Screeen.h

#ifndef SCREEN_H
#define SCREEN_H

class Screen {
public:
static int test;

static void InitLCD();
static void Clear();

private:
void SendToLCD();

char chars [3][20];

};

#endif /* SCREEN_H */

Oraz Screen.cpp

#include "Screen.h"
#include

#define I2C_LCD_ADDR 0x27
LiquidCrystal_I2C LCD_Screen(I2C_LCD_ADDR, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

void Screen::InitLCD() {
LCD_Screen.begin(20, 4); // initialize the lcd for 16 chars 2 lines, turn on backlight
}

void Screen::Clear() {

for (int i = 0; i <= 3; i++) {
for (int ii = 0; ii <= 20; ii++) {
Screen::chars[i][ii] = ' '; // tutaj błąd
}
}

}

void Screen::SendToLCD() {

}

Dostaje: /home/lukasz/Pulpit/StAlpha/app/Screen.h:14:22: error: invalid use of member 'Screen::chars' in static member function

W jaki sposób mogę odwołać się do zmiennej prywatnej w statycznej funkcji klasy?
  • 7
Generalnie chciałbym w kilku plikach korzystać z tych funkcji bez tworzenia obiektu wg klasy. Dobrze kombinuje, że jak zrobię static dla tablicy chars to będzie ona wspólna dla wszystkich obiektów utworzonych na podstawie klasy?