• ベストアンサー

C++への移行について

よくC++はCをやってからの方がいいという意見のほうが多かったので Cをやっていたのですがやっているうちにどんどんやることも増える(読みたい本も増える)のですがどの程度から移行するほうがいいのでしょうか。 第一段階:文法(制御文、ポインタ、関数等)を基本的に分かっている(明快Cや林「Cシリーズ」を理解) 第二段階:1人の著者ではなく複数の本(文法書やそれに類するもの)を併読した 第三段階:アルゴリズムを基に自分でCプログラムを作れる などCを知っているといってもレベル段階はかなり差があるかと思います。 基本的にはVC++を使いたいと思っていて、 CについてはC++やVC++をやりつつまた戻って復習という形で先に進めるのもどうかと思っているのですが、 どのくらいのレベルで移行するのがベターでしょうか? ケースを教えていただければ助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

私もANo.4の方と同意見です。 もう少しタブーに踏み込むと、、、 CとC++はかなり違います。 CとVC++2005とは、全然違います。 特に、VC++2005でMFCをやる場合には、Cはほとんど役に立ちません。 (C的なコーディングはかなり通りますが) 現実には、いきなりVC++2005&MFCから入って、ある程度慣れてから、必要に応じてC++に戻る、というのが一番短時間で覚える道だったりします。 実際に、これからそういう人が多くなってくると思います。 ポインタはしっかり理解する必要がありますが、それも最初から理屈で覚えるより、「見よう見まね」でいじっていれば、自然に分かってきたりします。 問題なのは、現場で人に教える立場の人が、古いCで覚えているケースがあり、新しいものを受け付けなかったりすることです。 頭ごなしに、「Cからやらんとだめだ」と、決めつけられて、古臭いコーディングを無意味にいじらされるハメになったりします。 ただ、この世界で食っていくつもりなら、古参のひとたちともうまくやらないといけませんし、教わることはたくさんありますし、他人の作った古いコードに手を入れさせられることもあるので、「Cを知らない」では通用しません。

tk516ncb
質問者

お礼

確かに昔の人がC!C!っ言っているのがわかる気がします(まだ社会人じゃありませんが)

その他の回答 (6)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.7

今すぐC++に移っても良いでしょう。 将来仕事にしたいと考えている場合は、C++、VC++のMFC、VC++/CLIを適材適所に書ける知識がほしいとは思いますが、就職先によってはC言語になるかも知れませんし、JAVAって事になったりもします。 マイクロソフトは、C++/CLIで統一を願っている気がしますが、Linux系の開発がC++/CLIになるとはとても思えません。 それに、今までのMFCの資産もありますから、VC++を使っている開発会社も簡単に乗り換え出来ないでしょう。 アマチュアとして楽しみたいのなら、C++/CLIは無料のExpressEditionだけでWindowsフォームの開発が出来ますから、当面の選択肢としては悪くないと思います。

  • master000
  • ベストアンサー率33% (16/48)
回答No.6

#5さんへ >> いきなりVC++2005&MFC これからは、MFCではなくCLRでしょう。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

最終的にC++しか使うつもりがないのであれば、いますぐC++をやればよいと思います。というより、最初からCを学ぶ必要はなかったのです。 CもC++も両方使うつもりであれば、Cで一通りのことができるようになってからC++に手を付けた方がよいでしょう。中途半端なことをするのはよくありません。 ただ、現実問題としては、完全にC++だけで済むことは稀です。C++だけで済ませようとすると、どうしても守備範囲が狭くなってしまうからです。 時間的に余裕があるなら、Cを一通りマスターしてから(ご質問の中にある「第三段階」もしくはそれ以上に達してから)C++に手を付ける方がよいでしょうし、時間的に余裕がないなら、今すぐC++に切り替えて、余裕のあるときにCに戻るのが、現実的な選択だと思います。

tk516ncb
質問者

お礼

ありがとうございます。 確かに時間との関係もありますね。できるならCを完全がいいがそうも行ってられない。 ある程度マスターでC++に切り替えようと思います。

  • master000
  • ベストアンサー率33% (16/48)
回答No.3

URLの本はいかがでしょうか。 おすすめです。

参考URL:
http://www.amazon.co.jp/dp/4891005017/
tk516ncb
質問者

お礼

早速買ってみました

回答No.2

いつでもいいと思います。 私はCでプログラムを書いているときから拡張子は.cppにして int main( void ) を int main() にしたり int i; for ( i = 0; i < 10; i++ ) を for ( int i = 0; i < 10; i++ ) にしたり 変数を自由な位置に宣言したりしていました。 とりあえずC++は一番主要な機能であるクラスだけなら30分も あれば覚えられるのでそれだけでも覚えて今のプログラムを 少しずつC++風にしていくことから始めたら自然とC++は覚えられます。 実際に真にC++を習得するのは一朝一夕とはいきませんが、 私はこうすることでC++にはほとんど抵抗無く移行できました。

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>よくC++はCをやってからの方がいいという意見のほうが多かったので それは単純に、 1. C++ を学習する人の多くが既に C を(ある程度)習得していた。 2. 言語を学習する上で、他の言語の経験があった方が習得しやすい。 という事象が組合さって作られた、経験則でしょう。大した根拠はありません。C++ の学習者の多くが「他の言語を知っていて役に立った」と言うべきところを「C言語を知っていて役に立った」と言っているだけです。 結論を言うと、C++ を勉強したいなら今勉強すれば良い。他の言語の経験があると役に立つが、無いものは仕方がない。Java を勉強する前に、まずは C言語を勉強する人はいない。

tk516ncb
質問者

お礼

ありがとうございます。 文法的にC++はCに近くC++をいきなりやるよりCで少し体操しておいた方がいいというイメージでした

関連するQ&A

  • C++導入または入門書として

    大学でC言語をやっているのですが、せっかくなのでC++(VC++)も勉強したいと思っているのですが(実用ではCよりVC++ようなので) Cはある程度分かっていることを前提にして、初期段階で読むのではこのサイト等を参考にすると 独習C++ Visual C++2005 シリーズ 林 晴比古 明解 C++ 柴田 望洋 C++プログラミング シリーズ ハーベイ M. ダイテル 等あるようですが 個人的にCを林さんのでやったので使いたいとは思っているのですがあまり評価がよくないようなのでどうしようか迷っています。 他の本もあわせてご推薦いただければありがたいです。

  • VIsual C++6.0のソースを書くところについて

    プログラミング言語の経験は全くない初心者です。 まだ何をつくろうとは考えていませんが、 将来的には簡単なゲームみたいなのを作れれば、と思ってます。 とりあえず新Visual C++6.0入門 ソフトバンク 著者 林 晴比古(はるひこ) を買って実際やってみました。 本に書いてある通りにしてみると確かにできました。 この本であまり文法が理解できなかったので途中で C言語の文法説明をサイトで見つけたので、 今度はそれを見ながらやろうとしたのですが、 問題が一つ! そういうソースを見つけて打つときはどこに打ったらいいのでしょうか? そのソースは年を聞いたりするプログラムなんですけども・・ 詳しい場所を教えてくだされば幸いです。

  • C++からVC++へ

    C++を勉強しているものです。 質問タイトルどうりなのですが、C++の勉強が 一応終わり、VC++に入ったのですが、VC++の 本を買ってみたところ、C++とは全く違うでは ないですか、画面表示にcoutは使えない。cinでキー 入力できない(コマンド名が違うというのではないです)。じゃあ今までやってきたことはなんだった のか、と思います。 このC++からVC++に移行できた人にどんなことを 勉強したのか、知りたいです。

  • Visual C++ 2005 の習得(6.0との違い)

    数週間の自己研修期間をもらい VisualStudio(C++) 2005 を勉強しています(MFC も勿論API も初心者です)。しかし、参考書のたぐいが VC++6.0 がほとんどです。VC++2005の参考書は林晴比古さんのビギナー編ぐらいしか見当たりません(勿論今はこれで学習中です)。  先のどなたかの投稿で少しだけ、 VC++2005と6.0では MFC もかなり違う、と触れられていた方がいらっしゃいました。  私が少しやっただけでも、基本的なコントロールのハンドラー関数なども違うようです。  短い研修期間なので、できるだけ勉強したいと焦っているのですが、VC++6.0 の参考書(ハーバードシルトなど良書がたくさんありますね)でVC++2005の学習はやっていけるでしょうか。  もしそういった注意関数の情報(サイトや本なども含めて)などありましたら教えていただけませんか。  また、是非習得された皆さんのやり方などお聞かせください。 アドバイス待っております

  • C言語の勉強方法

    こんにちは。 今C言語の勉強方法で悩んでいます。 私のC言語暦は、大学の授業の時に、文法一通りを覚えました。(当時はオセロゲームの次の一手を考えるようなアプリを作りました。) ポインタに関しては、柴田望洋さんの「C言語ポインタの極意」という本を少し読みました。ぼんやりと理解しているような状態です。K&Rの本は概ね理解できます。(演習問題はやっていません。) 仕事としてしているわけではなく、本はいろいろ読んでいるのですが、あまり自分でサンプルコードを打ってみたりはしていません。演習問題も解いていません。 APIに関する知識は乏しいです。アルゴリズムとデータ構造は、ヒントがないと、自力では書く自信がありません。基本情報処理技術者の資格も持っていません。 こういったレベルですが、これからどういった勉強をすればいいでしょうか?アドバイスを頂けるとありがたいです。

  • 【初心者】c言語をもう一度勉強しようと思います。

    c言語をもう一度勉強しようと思います。 独習Cとかの本を一回通しでやって理解していないぐらいの実力です。 ポインタとか構造体とかなんとなくふんわりとした感じでしか理解していなくて プログラミングとか書けません。 文法を固めるのが先か、 何かつくれるようにするのが先かどうすれば上達しますかね? VC6.0++でウィンドープログラミングにしたりしてみたのですが、 肝心のプログラム自体の内容がほぼ無意味なプログラムなので どうすれば内容の濃いプログラムを作れるか考えてしまいます。 アルゴリズムとか数学や物理の公式を実装できればいいと思うのですが、 まず実装までおとしこめないし、 また、何につかったらいいのかもよくわかりません。

  • C C++ cinとは?

    Javaの本しか読んだことがないのですが、データ構造とアルゴリズムの本を読んでいます。 解説がCやC++で書かれているため、わからない部分があります。 cinと出てくるのですが、これはどういったものなのでしょうか? 詳しい方いらっしゃいましたら、教えてください。 よろしくお願い致します。

  • C言語のいわゆる「良書」を紹介してください

    仕事上C言語を勉強しております。 本屋に行っても書籍が多すぎてどれがいいのかよくわからないです。そこで皆さんのお勧めの「良書」と言われるC言語の本を紹介していただけないでしょうか? 私が欲しいのは「文法」の本と「プログラミング方法」の本の2つです。私のリクエストとしては 【文法】 ・文法があますところなく網羅されている ・話の展開が系統立てて、よくまとまって読みやすい ・K&R本よりも詳しい 【プログラミング方法】 ・メモリやキャッシュの効率的な利用法など、ハードの仕様も考慮に入れたプログラムの組み方について解説している。 ・面白くてトリッキーなアルゴリズムが紹介されている 以上、よろしくお願いします。

  • C言語のアルゴリズムについて

    C言語で「標準入力から英語の文章を読み込んで,文字列Ilmorが出現した行をその行番号とともに表示するプログラムを作りなさい.」とプログラムを作りたいのですが、文字列を発見するところまでは分かるのですが、その行どうやって表示すればいいのか分かりません。また、文章を読み込むのもすごくややこしく最後にエンターを二回押すなどの制限があります。(scanf) 参考になるプログラムを書いていただける方いませんか?できればC言語のアルゴリズムについて詳しく書いた本やサイトがあれば教えていただきたいです。 レベルは超入門的な本を2,3冊読んだ程度です。アルゴリズムなどにはまったく触れてなかったし、ライブラリー関数も少ししか載ってなかったので関数の本もあれば教えていただきたいです。

  • ソフトウェア作成への勉強方法

    文系の大学生なのですが、 大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。 目標はゲームや色んなフリーウェアを作れるようになりたいです。 言語はC言語を勉強していて柴田望洋さんや林晴比古さんの本を読み 一通り基本的な文法やアルゴリズムは覚えました。 しかし数値のソートやデータ構造なんかを覚えたのは良いのですが、 実際に自分が普段使っているようなソフトウェアを作るのにどう結びつけたら良いのかよく分かりません。 特にGUIプログラム作成に関しては全く作り方が分かりません。 そこで今の状況から実際にソフトウェアを作れるようになるにはどういう勉強をしたら良いのか、 どういう本を読んだら良いのかということを教えて頂きたいです。お願いします。

専門家に質問してみよう