Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

private static eigenschaten

Empfohlene Antworten

Veröffentlicht

hallo, ich üb mal wieder mit klassen und habe eine neue frage, und da ich hier immer nützliche antworten bekomme frag ich gleich hier

also ich habe z.B. folgende klasse:

klassenname.h:


class Klassenname{

private:

#if defined(WINDOWS)

     static bool windowssetted;

#endif

     //andere eigenschaften



public:

#if defnied(WINDOWS)

     static bool iswindowssetted();

#endif

     //andere methoden und konstruktoren

};

Klassenname.cpp:

#if defined(WIN32) || defined(_WIN32)

#define WINDOWS 1

#endif


#include "Klassenname.h"


#if defined(WINDOWS)

bool Klassenname::iswindowssetted(){

     if(!windowssetted){

          return windowssetted=::machewas();//wenns gut gegangen ist wird die eigenschaft af true gesetzt

     return true;

}

#endif

also hier die probleme:

static bool windowssetted sollte am anfang auf false stehen, damit machewas() nur einmal aufgerufen wird und nicht öfters, daher ist sie auch static.

aber bei mir kommt immer der fehler:

1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static bool MySock::iswinsetted" (?iswinsetted@MySock@@0_NA)".

wie kann ich das so machen das die klasse ihre arbeit richtig macht?

und da die eigenschaft nur bei windows sein sollte habe ich das mit den präprozessor so gemacht, aber geht es vielleicht besser?

danke im vorraus, Laubi

aber bei mir kommt immer der fehler:

1>main.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""private: static bool MySock::iswinsetted" (?iswinsetted@MySock@@0_NA)".

Das liegt daran, dass das hier nur eine Deklaration ist:

class Klassenname{
private:
// ...
static bool windowssetted; // Das hier ist nur eine Deklaration!
[/code] Die Definition dieser Variablen fehlt, daher beschwert sich der Linker. Du musst die Variable in einer Übersetzungseinheit (Klassenname.cpp würde sich anbieten) [b]definieren[/b]. Dort kannst du sie dann auch initialisieren:
[code]bool Klassenname::windowsetted = false;

Nebenbei: Das Past Participle von "to set" ist "set", nicht "setted".

Danke, geht jetzt ohne probleme :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.