Ich arbeite derzeit an einem objektorientierten Projekt für C++ - Programmierung. Ich habe ein paar Objekte erstellt:C++ - Variablen ändern sich nicht wie beabsichtigt
int main()
{
Address address1 = Address("7732","cambie street","vancouver","BC","v5p3r3");
Author author1 = Author("Joe","Howe","[email protected]");
Publisher publisher1("candy",address1);
Book book1 = Book("sprite",author1,publisher1,"1995");
return 0;
}
und hier sind meine 4 Objektkonstruktoren
Address::Address(string number, string name, string c, string crty, string pCode){
streetNumber = number;
streetName = name;
city = c;
country = crty;
postalCode = pCode;
}
Book::Book(string newTitle, Author author1,Publisher pub, string y){
ISBN++;
bookISBN = ISBN;
title = newTitle;
a = author1;
authorCount = 1;
d = pub;
year = y;
}
Author::Author(string fN, string lN, string e){
firstName = fN;
lastName = lN;
email = e;
}
Publisher::Publisher(string n, Address x){
name = n;
a = x;
}
, wenn ich diese Funktionen in der Haupt
nennencout << book1.getPublisher().getAddress().getCity() << endl;
book1.getPublisher().getAddress().set("washington",Address::CITY);
cout << book1.getPublisher().getAddress().getCity() << endl;
nicht sicher, ob diese zulässig sind in C++ habe ich sie in Java,
Ich habe auch versucht, sie zu trennen d es würde mir die gewünschten Ergebnisse geben,
so meine Frage wird, ist dieses Format in C++ erlaubt und wenn ja, was mache ich falsch.
mein Ergebnis zeigt
vancouver
vancouver
aber würde mein gewünschtes Ergebnis
vancouver
washington
das sind meine get/set-Funktionen seines
Address Publisher::getAddress(){
return a;
}
Publisher Book::getPublisher(){
return d;
}
void Address::set(string value , int number){
switch(number)
{
case STREET_NUMBER:
streetNumber = value;break;
case STREET_NAME:
streetName = value;break;
case CITY:
city = value;break;
case COUNTRY:
country = value;break;
case POSTAL_CODE:
postalCode = value;break;
}
}
Danke für die Hilfe
Bitte besorgen Sie sich ein Buch über C++. Ihr Problem ist, dass Sie Dinge aus Java in C++ gelernt haben. Da diese beiden Sprachen ein grundlegend anderes Objektmodell haben, schlägt Ihr Code fehl. Nikita erklärte einiges (Kopieren von Rückgabewerten), aber es gibt mehr dazu, daher der Vorschlag, ein gutes Buch zu lesen. –
Stimmen Sie mit @UlrichEckhardt überein; Sie sollten über Zeiger und Referenzen lesen und verstehen, was sie sind und wie Sie sie verwenden ... da dies viel näher an dem ist, mit dem andere Sprachen arbeiten. – UKMonkey