• ベストアンサー

CとC++どちらが便利?

初めて投稿させていただきました。 いまCとC++のプログラムの勉強をしています。Cは参考書1冊分くらいやり、 いまC++をやっているのですが、どうもC+の良さ(便利さ?)が解りません。 部分的には便利なところもあるな(関数の戻り値が2つ以上でもOKとか関数の オーバロード、テンプレートなど)と感じるのですがクラスも問題をやっている 分には無理に使って使い方を覚えるような感じで、必要性が感じない?これなら Cでやったほうがいいんじゃないかと感じてしまいます。実際に仕事についているわけじゃないのでそれほど大きいプログラムを組んで勉強しているわけじゃないので すが、どちらが便利でしょう。CをやったあとなのでまだC++に慣れていないのかとも感じていますが・・・・。

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

  • ベストアンサー
  • FRE
  • ベストアンサー率90% (10/11)
回答No.1

プログラムの生産性から言えばC++だと思いますよ。 クラスでプログラムを組むのに慣れてしまうと、たまにCで組むとすごく不便を感じますし、、、。 WindowsでのプログラムならMFCは必要と思いますので、やっぱりC++に慣れた方がよいと思います。 大規模なアプリケーション作成にはC++で、より低レベルな(ハードよりの)ものはCで組むといった感じでしょうか。

arex_santa
質問者

お礼

お返事ありがとうございます。 はやくC++になれるように勉強励みます。 やっぱり大規模にならないとクラスの便利さとかは 解らないのですね~。

その他の回答 (2)

回答No.3

現実にCとC++の必要性はどうなの?ってゆうと、 必要性であればC++の方が断然あります。 特にWindowsのお仕事で見ればクラスやMFCを知っているだけで開発効率や実現性が全然違います。 ⇒つまり会社にとって利益率も変わってきます。 でも正直な所、C++って難易度が高い為技術者が育つのに時間がかかるんですよね。 ⇒なのでC++をこなせる人(使える人ではない)は人材的にも伸びていく人である事が多い…。 しかも仕事となると開発言語を選べない場合が多々あります。 C++の仕事があるんだけど、どう?とか。 JAVAで作ってよ。とかね。 なので学生のうちは必要性うんぬんではなくて、 いろいろな言語を試行錯誤した方がいいと思いますよ。 ⇒別に完全に習得する必要はないのです。要は知っておく事。

arex_santa
質問者

お礼

回答ありがとうございます。 やはりみなさんC++のほうが・・という方が多いのですね。 実をいうと只今転職中(無職)なのでちょっとあせっているというか、いろんな言語を広く浅くやるより、1つの言語を徹底的に勉強したほうが、これから就職するときにいいのかなという疑問がわいたのでこのような質問をさせていただきました。 でもいろいろな言語を知っておいたほうがよさそうなので安心しました。ありがとうございます。

noname#30727
noname#30727
回答No.2

個人的な感覚では、出来の良いクラスライブラリを使うとコーディングは数倍楽になります。でも、出来の良いクラスを作るのは、Cでコーディングするよりも明らかに面倒です。 クラスを作り慣れていないと、考える時間ばかり増えてしまうのが原因だと思います。 自分で作ることも大事なのですが、STLなど、人の作ったものも、どんどん使ってみて下さい。使いやすいもの、使いにくいものを体験していくことで、自分なりのコーディングスタイルが固まってくるはずです。 一度作ったプログラムは、どんなに出来が悪くても、消さないで保存しておくようにします。そうすると、過去に作ったプログラムの一部を流用する事が増えてくるので、そういう時にもC++の良さが実感できると思います。

arex_santa
質問者

お礼

貴重なご意見ありがとうございます。 確かにクラスを作りなれていないので考える時間ばかりとられてしまってます。 プログラムはすべてとっておいてあるので、今度は人の作ったものも色々使ってみて勉強してみます。

関連するQ&A

  • C++のテンプレート関数やテンプレートクラスをC#で利用するには?

    C++で作成したテンプレート関数やテンプレートクラス をC#で利用したいと考えております。 テンプレート関数やクラスを明示的実体化してコンパイルし、 C++/CLIでラップすればC#でも使えるという話を聞きました。 テンプレートでない通常の関数やクラスの場合は、 http://www.atmarkit.co.jp/fdotnet/special/vcppinvista01/vcppinvista01_01.html で紹介されているのを見つけたのですが、 テンプレート関数やクラスの場合 具体的にC++/CLI側でどのように記述すればよいか分かりません。 例えば、 ---- [test.h] template <class Type1> class Test{ public:   Type1 x;   template <class Type2>   Type1 func(Type2 y){ ... } }; ----- のようなクラスがあった場合、どうすればよいでしょうか。 明示的な実体化の方法とC++/CLIで明示的実体化した関数やクラスが どのような名前になるのかが分かれば上記サイトの方法で いけるのではないかと思っているのですが…。 環境はVisual Studio2005(or 2008)です。 よろしくお願いいたします。

  • C++のクラスについて

    C++を勉強しているC言語経験者です。 C++のクラスについてですが、クラスのメリットとはなんでしょうか?なんだか関数ポインタを持った構造体にしか見えないと言うか・・・(あと隠蔽化機能も持ってるんですね)。私が小規模なプログラムを組んだことしかない為か、クラスの必要性が全くわかりません。クラスは具体的にどう使い、どう役に立つものなのでしょうか? 回答よろしくお願いします。

  • クラスを使ったC++の関数をCで呼び出すには?

     QNo.152285と類似の質問になりますが、独自に用意したクラスを内部で使用し、extern "C" を宣言した、C++の関数をCプログラムから呼び出し、Cコンパイラでリンクすることを考えています。  この場合、C++関数内で使用されるクラスについても、extern "C"の記述が必要でしょうか?  またその記述の仕方はどのようになるでしょうか?  あるいは、そういったことはできないのでしょうか?(coutが使えることを考えると、できないわけではないとも思っていますが)  あるいは、コンパイルの際の、オプションなどで解決できるでしょうか?  クラスはnewで生成して使用しています。 環境はソラリスのCCとccを使っています。 どうか、ご回答よろしくお願いします。

  • C言語 関数の戻り値と自動変数

    かなり基礎的な質問になるのですが、疑問に思うことがあり、質問をさせていただきます。 関数内で宣言した変数を戻り値として使う場合ですが、ポインタなどではなく実体の場合でも、静的変数として宣言をしたほうが良いのでしょうか? 現実的に考えると、プログラムが関数から出て、呼び出した側の関数が戻り値を受け取るまでの瞬間に、その領域が書き換えられる可能性は極めて低いと思うのですけど、C言語の仕様としてはどうなのでしょうか? 関数内で宣言した戻り値に使う変数には、必ずstaticをつけた方が良いのでしょうか? もしおわかりでしたら教えて下さい。

  • C#について

    C#のカテゴリーがなかったので、ここに投稿させていただけます。 私は、VBAプログラマなのですが、C#を現在学習しています。C#の文法書を何冊か熟読し、少し応用的なVisualStudio2005のBCLプログラミングの本で勉強しています。 VBで言う、関数(Function)やサブプロシージャ(Sub)の実現は、C#でいう「staticなクラス」を使用することと置き換えてよいのでしょうか?

  • C++ クラスについて

    クラスについて今勉強しています。 そこで質問なんですが クラスの中にクラスというのは実現可能なのでしょうか? クラスAの中にクラスBとクラスCが入っている状態で、 クラスAの中にある関数XでクラスBやCの関数を呼ぶような処理を目指しています。 またクラスAに宣言されている変数をクラスB,Cの中で変更したりできないでしょうか?

  • C++で他のファイルの関数の引数を引きだす方法

    C++初心者です。 あるCプログラムに関数: testFunction(const char x[ ], int a, int b, int c)があり、 この関数はchar y[ ]を戻り値として返します。 次の段階で、別のC++を作成し、その中で、上記testFunctionを呼び出し、 使用している引数を引き出して以降のプログラムで使用する仕様のプログラムを組んでいます。 他のファイルに存在する関数を呼び出す方法は、 std::cout << testFunction(x[], a, b, c) << std::endl; ではないかと思っているのですが、ここから先が進まず困っている状況です。 戻り値だけではなく、引数も呼び出すことは可能でしょうか。 可能であれば、どのようにして呼び出すことができるのでしょうか。 アドバイスをお願いいたします。

  • C? C++?? 

    ただいま卒業論文中の大学4年生です。 卒論を OS UNIX でC言語を使ってプログラムを組んでいます。 学校のパソコンに VC++ が入る予定なので Windows を使って C++ も勉強したいと思っています。 が・・・ 疑問に思ったことがあります。 C と C++ ではどの様な違いがあるのですか?? C++ を新たに勉強し直さなければならないのですか?? 複雑なプログラムを組むのには C++ のほうが便利なようですが 簡単なプログラムだったら違いはないのですか?? 「UNIX」 と 「Microsoft VC++」どちらがプログラムを組むのに楽ですか?? 共通点、相違点を教えてください。 **出来ればでいいので回答ください。** あと卒論提出まで2ヶ月ですが UNIXでプログラム → LaTexで卒論 C++を勉強→ VC++でプログラム → Wordで卒論 どちらが手っ取り早いですか??

  • C++を学びたい

    こんにちは。私は今までMS-CやUNIX Cとかでプログラムを組んできましたが、 最近になり仕事でC++を使用するようになりました。 やるのは同じCなので効率よく勉強したいのですが、こんな経歴の自分でも わかるような解説がされている文献、またはサイトをご存知でしたら教えていただけますようお願い致します。 (特にC++の特徴でもあるクラスについて、詳しく説明されていれば嬉しいです。)

  • C#で配列の戻り値について

    プログラミング初心者で、ただいまC#の勉強中です。 bool型(trueまたはfalse)とstring型(関数内で取得した文字列)の値を 配列で関数の戻り値として返したいのですが、どうすれば良いのかわかりません。 true/falseもstringとして呼び出し側で判別するしか方法はないのでしょうか。 アドバイスをお願いいたします。

専門家に質問してみよう