tutorial fail?

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
mikemaster
Beiträge: 2
Registriert: Fr Feb 24, 2017 11:21 pm

tutorial fail?

Beitrag von mikemaster » Fr Feb 24, 2017 11:39 pm

Bei statischen membern -> https://www.proggen.org/doku.php?id=cpp:class:static
class Math
{
public:
static double PI = 3.14159265;
};
Hier wird (meinem Verständnis nach) eine Variable PI deklariert und ihr der Wert 3.14159265 zugewiesen.

laut tutorial sollte dies funktionieren...

mein visual Studio gibt mir jedoch den Fehler:

C2864 "Math::PI" : Eine statische "Datenmember" mit einem Initialisierer in der Klasse muss einen nicht flüchtigen konstant integralen Typ aufweisen.

wenn ich das static weg lasse funktioniert allerdings alles...

hoffe jemand kann mir erklären was da vor sich geht, wenn man gerade dabei ist das alles zu lernen, is sowas etwas schwer zu kapieren xD

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: tutorial fail?

Beitrag von Xin » Sa Feb 25, 2017 3:01 pm

Hmm... ja, Tutorial fail ;)

Ich bin der Meinung, dass das früher für Primitive (int, double...) funktionierte, wenn ich mir allerdings überlege, wie das geht, würde ich das auch nicht so umsetzen.

Korrekt ist es, dass Du die statische Varibale in der Klasse deklarierst

Code: Alles auswählen

math.h:

class Math
{
  static double PI;
};
und sie dann in einer Implementierungsdatei definierst:
math.cpp

Code: Alles auswählen

double Math::PI = 3.1415;
PI ist an der Stelle allerdings variabel, man kann PI also im Lauf des Programms ändern. Derartig statische Objekte sind meist Konstant:

Code: Alles auswählen

math.h:

class Math
{
  static double const PI;
};
math.cpp

Code: Alles auswählen

double const Math::PI = 3.1415;
Danke für den Hinweis, über die Seite muss ich wohl nochmal drüber.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

mikemaster
Beiträge: 2
Registriert: Fr Feb 24, 2017 11:21 pm

Re: tutorial fail?

Beitrag von mikemaster » Sa Feb 25, 2017 11:49 pm

Oh, danke für die Antwort und die gute Erklärung, so macht das alles direkt Sinn :)

Antworten