Nachdem ich das Kapitel Konvertierungen erfolgreich durch habe, versuche ich mich gerade mit ersten Schritten in Objekt orientiertem programmieren, aber irgendwie begreife ich die Sache nicht
Bei global, static, public, private usw kome ich ja noch mit
aber wenn ich auch nur ansatzweise versuche mein Programm über mehrere Dateien zu verteilen, dann geht nichts mehr, wenn ich also z.B. void irgendwas() in ein separates file packe und die beiden im compiler verlinke, sind selbst globals nicht mehr sichtbar
Mir ist sogar klar warum, global heisst halt filescope und nicht systemscope
Mir ist auch klar, dass ich globals so weit wie möglich vermeiden sollte, aber ich würde wenigstens gern verstehen wie es funktioniert, mit "soll man nicht tun, also muss man auch nicht wissen wie" gebe ich mich einfach nicht zufrieden
Nachdem ich aber scheinbar selbst für Anfänger Tutorials zu blöd bin, wäre ich dankbar, wenn mir das mal einer für ganz doofe erklären könnte
1) Wenn Subprogramm() in einem separaten file liegt, warum kann ich es dann aus main() heraus aufrufen?
2) Wie mache ich Variablen aus einem file in einem anderen file sichtbar?
Ich habe halt die Vorstellung, dass wenn ich irgendwann mal was grösseres schreibe, es nahezu automatisch über mehrere files geht, und ich wüsste doch zu gerne, wie das funktioniert
Oder liege ich evntuell so völlig daneben, dass das hier alles überhaupt keinen Sinn macht?
Bei global, static, public, private usw kome ich ja noch mit
Code:
int a = 1; // global variable, sichtbar im ganzen file
void Subprogramm(); // Prototyp;
int main()
{
int b = 1; // lokale Variable, nur sichtbar innerhalb main()
static int c = 1; // lokale Variable, aber durch "static" im Prinzip auch global
Subprogramm();
}
void Subprogramm()
{
a++; // kein Problem weil global
int b = 2; // neue lokale Variable, nur sichtbar im SubProgramm unabhängig von main()
}
aber wenn ich auch nur ansatzweise versuche mein Programm über mehrere Dateien zu verteilen, dann geht nichts mehr, wenn ich also z.B. void irgendwas() in ein separates file packe und die beiden im compiler verlinke, sind selbst globals nicht mehr sichtbar
Mir ist sogar klar warum, global heisst halt filescope und nicht systemscope
Mir ist auch klar, dass ich globals so weit wie möglich vermeiden sollte, aber ich würde wenigstens gern verstehen wie es funktioniert, mit "soll man nicht tun, also muss man auch nicht wissen wie" gebe ich mich einfach nicht zufrieden
Nachdem ich aber scheinbar selbst für Anfänger Tutorials zu blöd bin, wäre ich dankbar, wenn mir das mal einer für ganz doofe erklären könnte
1) Wenn Subprogramm() in einem separaten file liegt, warum kann ich es dann aus main() heraus aufrufen?
2) Wie mache ich Variablen aus einem file in einem anderen file sichtbar?
Ich habe halt die Vorstellung, dass wenn ich irgendwann mal was grösseres schreibe, es nahezu automatisch über mehrere files geht, und ich wüsste doch zu gerne, wie das funktioniert
Oder liege ich evntuell so völlig daneben, dass das hier alles überhaupt keinen Sinn macht?