Anfängerfrage
-
Ich habe ein ziemliche Anfängerfrage, habe dazu aber irgendwie nichts gefunden, weil ich nicht weiß wonach ich suchen soll.
Und zwar würde ich gerne wissen, wie ich eine Variable aus test1.cpp in test2.cpp bekomme.
Das sollte also ungefähr so aussehen:// Test1.cpp int hoehe = 5;// Test2.cpp int breite = 5; int flaeche = breite * hoehe;Wenn ich die Variable hoehe in test1.cpp ganz einfach global initialisiere, kann ich sie aber nicht in test2.cpp nutzen. Nun möchte ich eben gerne wissen wie das geht

-
Du musst die globalen Variablen in einem Header-File deklarieren. Die Header includest du dann in die *.cpp Files.
Test1.hpp
#ifndef TEST1_HPP_INCLUDED #define TEST1_HPP_INCLUDED extern int hoehe; #endifTest1.cpp
int hoehe = 5;Test2.cpp
#include "Test1.hpp" // mach hier was mit hoeheEdit: include-guard
-
LustigerAnfänger schrieb:
Ich habe ein ziemliche Anfängerfrage, habe dazu aber irgendwie nichts gefunden, weil ich nicht weiß wonach ich suchen soll.
Und zwar würde ich gerne wissen, wie ich eine Variable aus test1.cpp in test2.cpp bekomme.
Das sollte also ungefähr so aussehen:// Test1.cpp int hoehe = 5;// Test2.cpp int breite = 5; int flaeche = breite * hoehe;Wenn ich die Variable hoehe in test1.cpp ganz einfach global initialisiere, kann ich sie aber nicht in test2.cpp nutzen. Nun möchte ich eben gerne wissen wie das geht

Eine Antwort hast du ja bereits. Handelt es sich bei der Frage nur um ein Beispiel oder brauchst du das für dein Projekt tatsächlich so? In dem Fall müsste man überlegen, ob es tatsächlich sinnvoll ist hoehe in der anderen Datei zu deklarieren. Eventuell ließe sich das ganze mit Klassen auch noch besser regeln.
Globale Variablen sind nämlich zu vermeiden, sofern möglich.
-
Dein Beispiel ist doch eigentlich ein Paradebeispiel für eine klassenlose Funktion.
int func(int a, int b) { return a*b; }lg, freakC++
-
freakC++ schrieb:
Dein Beispiel ist doch eigentlich ein Paradebeispiel für eine klassenlose Funktion.
Darum ging es doch gar nicht.
-
Aber da es sich um eine "Anfängerfrage" handelte, dachte ich dass es ihn vielleicht interessiert. Aber ok ...
-
Danke, die Antowort __Stefan__ was genau das, was ich gesucht habe.
Mit einer Funktion habe ich es auch mal probiert, nur fand ich es etwas umständlich wenn man dafür eine Funktion schreiben muss.