私は現在、C++プログラミングのためのオブジェクト指向プロジェクトに取り組んでいます。私はメインC++変数が意図したとおりに変更されない
cout << book1.getPublisher().getAddress().getCity() << endl;
book1.getPublisher().getAddress().set("washington",Address::CITY);
cout << book1.getPublisher().getAddress().getCity() << endl;
わからないでこれらの関数を呼び出すときに、これらが許可されている場合
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;
}
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;
}
、ここで私の4オブジェクトのコンストラクタは次のとおりです。 私はいくつかのオブジェクトを作成しましたCで+ +私は、Javaでそれらを行った
私はまたそれらを分離しようとしました私は希望の結果を得るでしょう。
私の質問はこのフォーマットがC++で許されているかどうか、もしそうなら私は間違っています。
私の結果は
vancouver
vancouver
を表示しますが、私の希望する結果が
vancouver
washington
これらが助け
C++に関する本を入手してください。あなたの問題は、C++でJavaから学んだことを使っていることです。これらの2つの言語には根本的に異なるオブジェクトモデルがあるため、コードは失敗します。ニキータはそれのいくつかを説明しましたが(復帰値をコピーする)、それ以上のことがあるので、良い本を読むことを提案します。 –
@UlrichEckhardtと同意します。あなたはポインターとリファレンスについて読んで、それらが何であるか、そしてそれらを使用する方法を理解する必要があります。これは、他の言語が動作するものに非常に近いためです。 – UKMonkey