www.mikrocontroller.net

Forum: PC-Programmierung warum kille ich diese Variable?


Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo!

folgendes problem:

ich habe eine Klasse mit 2 Membervariablen und einer Methode.
class test
{
 public:
 string foo;
 string foo2;

 void setup();
};

void test::setup()
{
 this->foo2 = this->foo;
}


sobald ich die Methode "setup" ausführe, ist die Variable "foo" leer.
Wie kann ich foo2 den Wert von foo zuweisen, ohne foo zu zerstören?

besten dank für jeden Tipp

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wär's mit:

foo2 = foo;

Hat foo denn vorher überhaupt einen Wert? Wo und wie weist Du den zu?

Severino

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie zerstört man denn eine Variable?!

Kenne höchstens die Variante, dass man eine Variable, die auf dem Heap 
existiert (per malloc oder new angelegt) wieder gelöscht wird (free, 
delete). Aber zerstören? ;)

Ne, ohne Mist: In deinem Code ist kein Fehler. Es ist nur sinnlos eine 
Variable mit einer anderen nicht-initialisierten Variable zu 
initialisieren.

PS: den this-> Pointer kannst du weglassen.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zeigen die String Variablen nach der definition nicht auf den 
nullpointer?
es muss vorher eine initialisierung erfolgen, anschließend kann man den 
wert von foo an foo2 zuweisen...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike wrote:
> zeigen die String Variablen nach der definition nicht auf den
> nullpointer?

Nein.
Das ist C++ und nicht C#

In dem Moment in dem er ein test Objekt anlegt, legt er auch
die im Objekt enthaltenen string Objekte an und ...

> es muss vorher eine initialisierung erfolgen, anschließend kann man den
> wert von foo an foo2 zuweisen...

... selbst wenn keine explizite Initialisierung dieser string
Objekte erfolgt, haben sie dennoch einen Wert, nämlich einen
leeren String.

Egal wie er sich anstellt, wenn das test Objekt erzeugt wurde
sind auch die string Objekte in einem gültigen Zustand (sind
also initialisiert).


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für alle Antworten! Ich frage am Montag mal meinen Prof. was der 
dazu sagt....Poste dann das Ergebnis.

Schönes WE

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich gehe davon aus, daß der Fehler in dem Teil des Code liegt, den du 
uns verschwiegen hast. Du zeigst nämlich nicht, wie du die Variablen 
beschreibst oder ausliest. Poste doch mal ein minimales, aber 
komplettes Programm, das den Fehler zeigt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.