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.

Empfohlene Antworten

Veröffentlicht

Habe gerade angefangen meine ersten tapsigen Schritte mit c++ zu machen...

Hab einen guten Onlinekurs gefunden der für Anfänger sehr schön aufbaut.

Bin gerade dabei Variablen zu deklarieren und einen Wert zuzuweisen.

Habe also testweise einmal die Variable "int zahl" deklariert.

Im nächsten Schritt wollte ich der Variable "zahl" den Wert 42 zuweisen.

Der Quellcode dieses kleinen Programms war also folgender:

int zahl;

zahl = 42;

Ich benutze übrigens Dev-C++ 4.9.9.2

Wenn ich jetzt testweise mal kompiliere, erhalte ich unten folgende Fehlermeldungen für die 2te Zeile:

2 C:\Cplusplus\Unbenannt1.cpp expected constructor, destructor, or type conversion before '=' token

2 C:\Cplusplus\Unbenannt1.cpp expected `,' or `;' before '=' token

Tja... da steh ich nun ich armer Thor...

Kann mir jemand mit ner Erklärung inc. Fehlerbehebung aushelfen?

Tja, das ist der komplette Quellcode ^^

Ich stecke noch in den Kinderschuhen und fange von 0 auf an....

Eventuell FEHLT ja was, z.B. der aufruf aus irgend ner Bibiothek der Variablen erst ermöglicht... Kann das sein?

Da fehlt das ganze Grundgerüst. ;)

Tja, hehe... So was kann ja mal passieren wenn man noch keine Ahnung hat... ;)

Hab das Programm jetzt dementsprechend angepasst:

[quote

main()

{

int zahl;

zahl = 20;

}

und jetzt läuft es...

*froi, mein erstes c++ Programm* :bimei

Danke für die Hilfe!

Bitte den Tread offen lassen, werde wohl in nächster Zeit oft solche Fragen haben.

Gleich die nächste Frage:

Wenn man in einer Verschachtelung einer Variable einen Wert gibt...

Und die Verschachtelung schliesst, dann st die Variable ausserhalb des Blocks doch nicht mehr mit diesem Wert gefüllt, oder?

Gleich die nächste Frage:

Wenn man in einer Verschachtelung einer Variable einen Wert gibt...

Und die Verschachtelung schliesst, dann st die Variable ausserhalb des Blocks doch nicht mehr mit diesem Wert gefüllt, oder?

doch, ist sie :)

Hey Klasse wie schnell man hier Antworten bekommt... :)

Aber wenn man in nem Übergeordneten Block die selbe Variable anders definiert hat, übernimmt sie nach dem schliessen den alten Wert oder?

Also wie hier zum Beispiel:

main()

{

int zahl;

zahl = 20;

{

zahl = 30;

}

}

Falls was am Code nicht stimmt, bitte verbessern... hab noch absolut keine Ahnung... :hells:

Naja, die Variable würde aber nach dem schliessen des inneren Blocks wieder den Wert 20 übernehmen oder?

P.s.: Gibts keinen Editieren Button?

Naja, die Variable würde aber nach dem schliessen des inneren Blocks wieder den Wert 20 übernehmen oder?

Nein, würde sie nicht.

Stimmt. die Klammern verändern keine Variablen :)

Hmm... in diesem Link oben in der Anleitung für Anfänger steht aber folgendes Beispiel:

{

int a = 5;

{

// hier hat a den Inhalt 5

}

{

int a = 3;

// hier hat a den Inhalt 3

{

// a ist immer noch 3

}

}

// hier ist a wieder 5

}

Lokale Variable

Die innere Variable wird als lokale Variable bezeichnet. Für ihren Geltungsbereich überdeckt sie die außen liegende Variable a. Die außen liegende Variable existiert durchaus noch, aber aufgrund der Namensgleichheit mit der lokalen Variablen kann man bis zu deren Auflösung nicht auf sie zugreifen. Sobald das Programm den Block verlässt, in dem die lokale Variable definiert ist, wird die äußere Variable wieder sichtbar. Alle Operationen auf der lokalen Variablen berühren die äußere Variable nicht.

Also was hab ich da nicht recht verstanden?

Hallo,

durch das int vor dem a definierst du die Variable jedes Mal neu.

EDIT:

...nochmal deklariert...

Sie wird nicht nur deklariert, sonden definiert, denn es wird für jedes innere Variable neuer Speicher reserviert.

Ah!

Verstanden, danke! :D

Wenn man eine Variable innerhalb einer Klammer definiert, ohne das sie zuvor ausserhalb einer Klammer definiert wurde, verliert sie dann ausserhalb der Klammer ebenfalls ihren Wert?

Also ist sie dann auch eine Lokale, und keine Globale Variable?

Ah!

Verstanden, danke! :D

Wenn man eine Variable innerhalb einer Klammer definiert, ohne das sie zuvor ausserhalb einer Klammer definiert wurde, verliert sie dann ausserhalb der Klammer ebenfalls ihren Wert?

Sie verliert nicht nur ihren Wert, sondern wird komplett zerstört. Sie existiert nur innerhalb des Sichtbereichs (Scope). Nach der } ist Schluss, aber das wurde doch auch schon erklärt?!

Also ist sie dann auch eine Lokale, und keine Globale Variable?

Ja. Wieso auch? So ganz klar scheint mir das noch nicht zu sein. Globale Variablen sind immer über die gesamte Laufzeit des Programms gültig.

Bei deinem Beispiel davor hattest du quasi mehrere Variablen mit dem Namen "a". Sowas ist gefährlich zu zeugt von schlechtem Stil, genau wie globale Variablen. In den meisten Fällen kann man sowas eleganter lösen.

Guck dir einfach das mal an:

http://tutorial.schornboeck.net/inhalt.htm

Speziell das:

http://tutorial.schornboeck.net/variablen.htm

Nun, hab bisher immer mit Basic.. (das alte Qbasic) "programmiert", daher hab ich die Angewohnheit solche globalen Variablen zu verwenden... ;)

Danke für die beiden Tutorials, werden mir noch ein Stück weiterhelfen!

Und aufgrund des Touts die nächste(n) Frage(n):

Diese beiden Zeilen:

#include<iostream>

using namespace std;

Was bedeuten die im genauen?

Dieses #include scheint ne Art Bibiothek aufzurufen die dann später Eingaben über die Tastatur etc. ermöglicht... das hab ich irgendwo gelesen.

Aber zu was ist der using namespace std Befehl da?

UDieses #include scheint ne Art Bibiothek aufzurufen die dann später Eingaben über die Tastatur etc. ermöglicht... das hab ich irgendwo gelesen.
Das ist so nicht ganz richtig. Die include-Direktive des Präprozessors (die fangen alle mit # an) bewirkt eigentlich nur, dass vor dem Compilieren an die Stelle der Direktive der Inhalt der angegebenen Datei (hier: iostream) kopiert wird.

iostream ist eine Datei, die u.a. Deklarationen für die Konsolenein- und -ausgabestreams enthält.

Aber zu was ist der using namespace std Befehl da?
Befehle gibt es in C und C++ nicht ;)

Alle Objekte und Funktionen der C++-Standardbibliothek liegen im Namespace std. Um also cout benutzen zu können, muss man std::cout schreiben. Um das nicht machen zu müssen, kann man auch einzelne (oder, wie hier, alle) Objekte eines Namensraum in den globalen Namensraum "heben". Das geschieht mit Hilfe der so genannten using-Direktive.

Danke!

Ich sollte also immer diese beiden Sachen laden, auch bei kleineren Programmen?

So, jetzt hab ich mal eine etwas dümmere Frage... ich lese das immer überall aber ganz durschaut habe ich es noch nicht:

Was versteht man unter Objektorientierter Programmierung?

Danke!

Ich sollte also immer diese beiden Sachen laden, auch bei kleineren Programmen?

"Geladen" wird da nichts. Include-Direktiven solltest du da benutzen, wo du sie brauchst, sonst nicht. Und using-Direktiven sind ein zweischneidiges Schwert, wenn man sie auf ganze Namensräume anwendet. Einerseits ersparen sie einiges an Schreibarbeit, andererseits heben sie aber den Hauptzweck eines Namensraumes wieder auf: Die Vermeidung von Namenskonflikten.

Auf keinen Fall solltest du using-Direktiven in Headerdateien benutzen, d.h. in Dateien, die selbst mittels einer include-Direktive in eine andere Datei eingebunden werden.

Was versteht man unter Objektorientierter Programmierung?
Das lässt sich mal eben in ein paar Worten erklären.

Schau mal hier rein: http://de.wikipedia.org/wiki/Oop

Hallo,

@jonsc1: Wir du gemerkt hast, wird dir hier oft und gerne geholfen, aber du solltest nicht bei jedem Problemchen hier nachfragen. Kauf dir ein Buch, arbeitete diverse Tutorials durch und benutze google.

Die Dinge, die du bisher gefragt hast, stehen in so ziemliche jedem Einsteigerbuch, und sei es auch noch so schlecht.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.