Java/C#からC++に移行する最善の方法は何ですか?


10

私の大学では、ほとんどのクラスがJavaで書かれています。私は最近、夏のインターンシップでC#(とVisual Studio環境)を学びました。今私はIntro to Computer Graphicsクラスを受講しています。クラスを教える大学院生は、GLUTを介してOpenGLバインディングにアクセスするためにC++を使用することを好んでいます。

Java/C#からC++への良い移行方法については、誰も良いリソースがありますか?明らかにポインタは大きな問題になるでしょうが、私が探しているべきことは他にありますか?チュートリアル、ガイドなどはとても役に立ちます!

ありがとうございます!

8

ええ、私は同じバグでちょっとしたことがあります。大学はJavaに傾きがちで、プロジェクト中に作業したい言語を選択することができました。

ちょっと飛び込んで、小さなステップを始めると、赤ちゃんの歩みをとって、あなたがそこに着くときにあなたを混乱させるばかりのことをしてください。また、ソースコードを公開したプロジェクトもあります。彼らのプログラムの構造を見てください。基本的には、コンセプトを変えるだけです。ウェブの周りにはたくさんの情報があります。

C++ game development bookを楽しくして、あまりにも早く覚醒しないようにしてください。ここで

は、効果的なC++のスコット・マイヤーズによって

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/


4

すでにJava/C#を知っていれば、C++の代わりにCに直接行くことをおすすめします。ウェブサイトによると、GLUTはC++と同じバインディングを持っていますので、すべて設定する必要があります。とにかく、Cを学ぶ最善の方法は、 "The C Programming Language"のコピーを購入して読んで、Cコンパイラで座って、あなたのものを稼働させることです。


2

Scott MeyersのEffective C++は、C++を学ぶのに役立つ素晴らしい本です。基本的にどのC++プログラムの開発でも使用する主要な概念を紹介します。


2

を学びながら、私は重宝いくつかの場所ですあなたがC++を学ぶのを助けるための素晴らしい本です。基本的にどのC++プログラムの開発でも使用する主要な概念を紹介します。

3冊すべてでこの本が大好きで、私はUTでシニアとして勉強した本の1冊ですが、それは始まりの本ではありません。 Meyerの作業を読むまでは、コンパイラを使う人はいないでしょうが、C++で快適になることができます。

まだ印刷されていますが見つかりましたか?C++のナビゲートに便利ですが、Pascalのポインタも非常に快適でした。間違いなく、私は15年前にOOPが何であったかを学ばなければならなかったことを忘れています。今はもう少し想定しています。だから、おそらくメイヤーズはラインから外れていません。思考?


2

ウィキペディアには、comparisons between Java and C++に関する記事があります。

C++でチェック例外を気にする必要はありませんが、const correctnessについて知る必要があります。


2

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

C++には、Javaからすでに知っているより強力な(またはあなたの力の解釈によってはあまり強力でない)オブジェクト参照があります。

Javaでは、あなたはこれを行う可能性があります:あなたはこれだろうC++では

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

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

を構文的な違いは明白である: - '' '>' の代わりに、オブジェクトメソッドをポインタからオブジェクトに呼び出すとき。 C++では、オブジェクトの終了時に明示的にメモリを解放する必要があります。最後に、C++やJavaで同じことをやっています。オブジェクトをインスタンス化してメソッドを呼び出す、すべての行末に無駄なセミコロンを入れます。

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

半分くらいのC++テキストをスキミングすると、残りの詳細を入力するのに役立ちます。


2

また、Bruce EckelのThinking in C++も完全にお勧めします。既に経験豊富なプログラマーのための素晴らしい本で、C++の考え方に乗りたいと思っています。

彼は彼の本の電子版を作成するのに十分親切ですavailable for free


2

C++を学ぶ人は、Stroustrups "The C++ Programming Language"を読むことを強くお勧めします。 MeyersとEckelはすばらしいことがありますが、言語が何であるべきか、どのように使用されるべきかを決める人から学ぶことは何もありません。


2

私は全く同じ問題を抱えていました。私が見つけた唯一の本は"Pro Visual C++ 2005 for C# Developers" by Dean C. Willsでした。それは優れた例で良い読書です、そして、私は本が来る角度がおそらくあなたが探しているものだと思います。


1

メモリの取り扱いに関しては、全く異なる感じが必要です。もう必要のないすべてのものを解放することも考えてください。 JavaやC#では、あなたのオブジェクトを手放すだけで、メモリはあなたのために整理されます - あなたはCPPでそれをすることはできません