10

私の大学では、ほとんどの授業で Java を使用していました。また、最近、夏のインターンシップで C# (および Visual Studio 環境) を学びました。今、私はコンピュータ グラフィックス入門クラスを受講しています。クラスを教えている大学院生は、C++ を使用して GLUT 経由で OpenGL バインディングにアクセスすることを好みます。

Java/C# から C++ への適切な移行方法に関する適切なリソースを持っている人はいますか? 明らかにポインターは大きな問題になるでしょうが、他に注意すべきことはありますか? チュートリアル、ガイドなどは非常に役立ちます!

ありがとう!

4

10 に答える 10

8

ええ、私は同じバグに噛まれました。大学はJavaに頼る傾向があり、プロジェクト中に使用したい言語を選択できるようになりました。

最善の方法は、ただ飛び込むことです。小さなことから始めて、赤ちゃんの一歩を踏み出し、そこに着いたときに混乱するGoogleのことだけを考えてください。また、ソースコードをリリースしたプロジェクトを見つけてください。彼らがプログラムをどのように構成しているかをご覧ください。基本的には、概念をいじくり回すだけです。ウェブにはたくさんの情報があります。

楽しくして、C ++ゲーム開発の本を手に入れて、すぐに麻痺することを気にしないようにしてください。

学習中に役立つ場所をいくつか紹介します

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

于 2008-08-21T05:25:22.373 に答える
4

Java/C# を既に知っている場合は、C++ ではなく直接 C に進むことをお勧めします。Web サイトによると、GLUT は C に対して C++ と同じバインディングを持っているため、すべて設定する必要があります。とにかく、C を学ぶ最善の方法は、「C プログラミング言語」のコピーを購入して読み、C コンパイラと一緒に座って、自分のものを実行することです。

于 2008-08-21T04:51:20.443 に答える
2

ScottMeyersによる効果的なC++は、C++の学習に役立つ優れた本です。言語の概要を説明し、基本的にすべてのC++プログラムの開発全体で使用する多くの重要な概念を紹介します。

于 2008-08-21T05:00:56.613 に答える
2

ScottMeyersによる効果的なC++は、C++の学習に役立つ優れた本です。言語の概要を説明し、基本的にすべてのC++プログラムの開発全体で使用する多くの重要な概念を紹介します。

私はこの本を3つのエディションすべてで気に入っており、UTのシニアとして持っていたクラスの本の1つでしたが、これは最初の本ではありません。Meyerの作業を読むまでは、コンパイラーに慣れることはできませんが、C++でははるかに少ないコストで快適に使用できます。

それがまだ印刷されているかどうかはわかりませんが、Navigating C ++が便利であることがわかりましたが、Pascalからのポインターにも非常に満足していました。もちろん、15年前にOOPとは何かを学ばなければならなかったことを忘れていますが、今ではもう少し想定されています。したがって、おそらくマイヤーズはラインから外れていません。考え?

于 2008-08-21T05:47:07.000 に答える
2

ウィキペディアにはJava と C++ の比較に関する記事があります。

C++ のチェック例外について心配する必要はありませんが、const の正確性については知っておく必要があります。

于 2008-08-21T06:11:43.650 に答える
2

主な違いは 2 つあります。構文とメモリ管理です。

C++ には、Java ですでに知っている、より強力な (または能力の解釈によってはそれほど強力ではない) オブジェクト参照のポインターがあります。

Java では、次のようにします。

Thing mything = new Thing(); // mything is an object reference
mything.method();

C++ では、次のようにします。

Thing * mything = new Thing(); // mything is an object pointer
mything->method();
delete mything;

構文上の違いは明らかです。「.」ではなく「->」です。オブジェクトへのポインターからオブジェクトメソッドを呼び出すとき。C++ では、オブジェクトの処理が完了したら、メモリを明示的に解放する必要があります。結局のところ、C++ と Java で同じことを行っており、オブジェクトをインスタンス化してメソッドを呼び出し、各行の最後に無駄なセミコロンを配置するなどしています。Python がこれほど人気になっているのは不思議ではありませんか?:

mything = Thing() # mything is whatever I want it to be
mything.method()

まともな C++ テキストをざっと目を通しておくと、残りの詳細を埋めるのに役立ちます。

于 2008-08-21T07:19:36.157 に答える
2

Bruce Eckel のThinking in C++も徹底的にお勧めします。C++ の考え方を習得したいと考えている経験豊富なプログラマーのための素晴らしい本です。

彼は親切にも彼の本の電子版を無料で利用できるようにしています。

于 2008-08-21T09:26:29.767 に答える
2

C++ を学習しているすべての人に、Stroustraps の「The C++ Programming Language」を読むことを強くお勧めします。Meyers と Eckel は素晴らしいものを持っていますが、言語がどうあるべきか、そしてそれをどのように使用するつもりかを決定した人から学ぶことに勝るものはありません。

于 2008-08-21T18:36:57.837 に答える
2

まったく同じ問題がありました。私が見つけた唯一の本は、Dean C. Wills による「Pro Visual C++ 2005 for C# Developers」でした。優れた例を示した読みやすい本であり、本書の角度はおそらくあなたが探しているものだと思います.

于 2008-08-21T20:52:36.373 に答える
1

メモリの取り扱いには、まったく異なるフィーリングが必要になります。また、不要になったものをすべて解放することも検討してください。Java と C# では、オブジェクトを手放すだけで、メモリが整頓されます。CPP ではそれができません。

于 2012-03-21T01:41:37.617 に答える