| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Zeiger/Referenz C++ im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo, ich habe hier ein ( ich gebe es zu : lächerliches Problem aber ich hab irgendwie nen Blackout ...
![]() |
| | #1 (permalink) |
| Registriert seit: 19.08.04 ![]() Likes: 1 | Anzeige Hallo, ich habe hier ein ( ich gebe es zu : lächerliches Problem aber ich hab irgendwie nen Blackout ) Code: #include <iostream>
class c1
{
public:
c1();
void setString(std::string test);
void modify(void);
private:
std::string neuer_string;
};
c1::c1()
{
}
// Methode für Wertzuweisung
void c1::setString(std::string test)
{
test = neuer_string;
}
void c1::modify(void)
{
// Der String aus main soll nun einen neuen Wert erhalten
neuer_string = "Kein Haus";
}
int main(void)
{
std::string haus = "haus";
// Objekt der Klasse c1
c1 *klasse1 = new c1();
// Alten Wert ausgeben
std::cout<<"Vorher : "<<haus<<std::endl;
// Wert aendern
klasse1->setString(haus);
klasse1->modify();
std::cout<<"Nachher : "<<haus<<std::endl;
delete klasse1;
return 0;
} |
| | |
| | #2 (permalink) |
| Registriert seit: 01.11.03 ![]() Likes: 0 | Wie schon gesagt... eine Referenz: Code: void c1::setString(std::string &test)
{
test = neuer_string;
} |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Registriert seit: 15.10.04 ![]() Likes: 0 | Code: #include <iostream>
#include <string>
class c1
{
public:
c1();
void setString(std::string &test);
void modify(void);
private:
std::string neuer_string;
};
c1::c1()
{
}
// Methode für Wertzuweisung
void c1::setString(std::string &test)
{
test = neuer_string;
}
void c1::modify(void)
{
// Der String aus main soll nun einen neuen Wert erhalten
neuer_string = "Kein Haus";
}
int main(void)
{
std::string haus = "haus";
// Objekt der Klasse c1
c1 *klasse1 = new c1();
// Alten Wert ausgeben
std::cout<<"Vorher : "<<haus<<std::endl;
// Wert aendern
klasse1->modify(); // muss vor setString kommen, sonst hat neuerString keinen sinnvollen Wert
klasse1->setString(haus);
std::cout<<"Nachher : "<<haus<<std::endl;
delete klasse1;
return 0;
} Außerdem musst du die beiden Funktionsaufrufe vertauschen (siehe Code). |
| | |
| | #4 (permalink) |
| Themenstarter Registriert seit: 19.08.04 ![]() Likes: 1 | So, erstmal danke für die Antworten. Euer Vorschlag mit : 1. Den String Wert zuweisen 2. Dann in der main() den String ändern ist ja eigentlich genau das umgekehrte was ich haben muss : Ich bräuchte : klasse1->setString(haus); klasse1->modify(); Euer Vorschlag : klasse1->modify(); klasse1->setString(haus); Ich will aber erst der Klasse meinen std::string übergeben, da modify wird eigentlich bei mir auch nicht in der main aufgerufen, sonders intern in der Klasse, im der Methode modify soll nun der String verändert werden und ich begebe mich wieder ins Haupt Programm, wo nun der neue modifizierte und nicht der alte String stehen soll. Das Programm ist halt eine GUI, man drueckt einen Button, es öffnet sich ein neues Fenster, dem Fenster will ich die std::string variable aus der GUI übergeben, die GUI wird blockiert, im neuen Fenster will ich den Wert verändern , wenn ich das Fenster schliessen, wird die GUI wieder aktiviert und die std::string Variable in der GUI soll nun den neuen Wert haben. Ich könnte das auch mit get/set Methode machen, aber auf dieses hin und her habe ich keine Lust und ein Zeiger ist irgendwie eleganter. |
| | |
| | #5 (permalink) |
| Registriert seit: 01.11.03 ![]() Likes: 0 | Code: #include <iostream>
class c1
{
public:
void setString(std::string *test);
void modify(void);
private:
std::string *neuer_string;
};
void c1::setString(std::string *test)
{
neuer_string = test;
}
void c1::modify(void)
{
if(neuer_string)
*neuer_string = "Kein Haus";
}
int main(void)
{
std::string haus = "haus";
c1 *klasse1 = new c1();
if(!klasse1)
return 1;
std::cout << "Vorher : " << haus << std::endl;
klasse1 -> setString(&haus);
klasse1 -> modify();
std::cout << "Nachher : " << haus << std::endl;
delete klasse1;
return 0;
} |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| C++ Referenz | Nick H. | Code Kitchen | 5 | 01.12.05 20:27 |
| C und Zeiger | Dawen | Code Kitchen | 3 | 09.11.05 21:49 |
| c++ referenz | Scrat | Code Kitchen | 2 | 04.08.04 15:30 |
| Zeiger | foobar | Code Kitchen | 6 | 08.04.04 13:10 |
| Zeiger | gelöscht | Code Kitchen | 8 | 27.10.03 20:48 |