質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

167閲覧

C++の学び方などについて

Negligible-n

総合スコア18

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1グッド

2クリップ

投稿2019/02/11 06:13

C/C++はJavaなどの元になっている?という意見などがあり、また個人的に興味もあったので学ぼうと思ったのですが、C++は学んで損はありますか?
C++を学ぶ前に(Cの知識はもちろんですが)どのようなことを知っておくと良いのでしょうか?
また、おすすめのサイトや書籍などがあったらその名前とどのように使っているかを簡単に教えていただけるとありがたいです。もしC++以外で良いのがありましたらそれも教えて下さい。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohhoy

2019/02/11 06:54

あなた自身の他プログラミング言語経験・スキル情報を追記された方が良いと思います。
Negligible-n

2019/02/11 07:00

失礼します。結構スコアが高かったのでもし良ければ意見をお願いします
yohhoy

2019/02/11 07:02

バックグラウンドもわからない方に対しては、「本当に興味があるならぜひチャンレンジしてみては」としかお伝えできません...
Negligible-n

2019/02/11 07:20

すみません ありがとうございます
guest

回答2

0

ベストアンサー

C/C++はJavaなどの元になっているのは違いますよ。
Javaの元になった言語がc言語が正解です。

c++なら検索すればある程度は身に付けれますよ。
ツールはvisual studioがおススメです。

http://wisdom.sakura.ne.jp/programming/cpp/
ある程度なら↑で十分。

投稿2019/02/11 06:40

stdio

総合スコア3307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Negligible-n

2019/02/11 06:58

C++について調べているとosの知識が必要とか書いてありましたが具体的にどのような事なのでしょうか?ポインタはなんとなくは理解出来たのですが…
stdio

2019/02/11 07:03

osの知識はコンパイラーなどの言語作りたい場合などにはいります。 それは貴方が何をしたいのかによって、変わってくるので「要りません」とは容易に言えません。 ポインタが理解できたのならc++の登竜門であるc言語はばっちりだな。 後はクラスとかの話をすればある程度は身に付くはずですよ。
guest

0

こんにちは。

C/C++はJavaなどの元になっている?という意見などがあり、

JavaやC#はC/C++の構文に強く影響を受けています。といいますか、C++の難しい部分をまるっと削除し、学習を容易にし、かつ、多少の速度を犠牲にして生産性を上げたようなイメージかと。
デメリットとしてはVMがないと動かないのでVM自体を書く意味がないです。OSのカーネルを書くのも実用的ではないでしょう。

また個人的に興味もあったので学ぼうと思ったのですが、

プログラマとしてのスキルアップのためにはたいへん有用と思いますよ。

C++は学んで損はありますか?

悩ましいです。C++はかなり学習難易度が高いので、ある意味人を選んでしまう言語と思います。
CプログラマがC++を学ぶことは常に有用と思いますが、ゴールがJavaの場合は微妙です。
JavaはC++に比べると格段に学習が容易ですので、同じ時間をかければそれだけ広く深く学べます。
Javaがゴールでしたら、コンピュータの仕組みを学びやすいC言語までで十分かも知れません。

C++には、各種参照やテンプレートなど難しくてJavaやC#には存在しない概念が盛り沢山です。これらは速度的な妥協をしないで生産性を上げる仕組みです。その分、学習難易度が高いです。

投稿2019/02/11 07:53

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stdio

2019/02/11 07:58

その辺なんも考えずにC++でゲーム作ってた人間(主に私)からすると、各種参照やテンプレートなんか知ってて当たり前みたいになってました。そんなに難易度高いですかね...
Negligible-n

2019/02/11 08:28

回答ありがとうございます! Javaは有名なので例として挙げただけです。ゴールはC++と考えていましたのでやってみようかと思います!
Chironian

2019/02/11 08:42

stdioさん 通常の参照とconst参照の相違だけでもそれなりかと。更に右辺値参照を使いこなすのは結構ハードル高いと感じてます。テンプレートはオーバーロードや部分特殊化、明示的特殊化、明示的実体化、暗黙的実体化なども難易度高いと思います。これらを簡単に把握できる人も存在するとは思いますが、私にとってはかなり難易度が高かったです。 確かにこれらを容易に把握できる人もそれなりにいると思いますので stdio さんもその一人かも。 Negligible-nさん おおっ!! C++の世界へいらっしゃい。応援します。 私も解説を書いてますので、もし、よろしければ見てみて下さい。 https://theolizer.com/cpp-school-root/
stdio

2019/02/11 08:43

どうでもよいかもしれませんがほとんどの言語は手段でしかありません。 ですので、まずはC++で何を最終目標にするかを考えましょう。
stdio

2019/02/11 08:52

>>テンプレートはオーバーロードや部分特殊化、明示的特殊化、明示的実体化、暗黙的実体化なども難易度高いと思います。 私にとって「テンプレートは基本扱いにくいゴミ」としか認識してませんね。 もともと型にうるさいC言語の世界で型が要らないとか矛盾したこと言ってるから、基本使わないようにしてます。使うところを見極めて、出来れば使わないように心がければテンプレートは敵とは限りませんからね。その点auto型はある程度制限効いてて使い易いですね。
Chironian

2019/02/11 10:05

テンプレートは、型を与えた結果、不適切なコードが生成されようとしたら、概ねエラーになります。しかも任意の型に対してコンパイル時に検出できます。更にC#やJavaのジェネリクスと異なりコンパイル時に展開されますから、実行時のオーバーヘッドが最小限です。これにより、テンプレートを使いこなせばこなす程、信頼性がより高くより高速なプログラムをより短時間で書けるようになります。(便利ですよ。) しかし、頻繁に使うわけではないですし、多少速度を犠牲にするか手間を惜しまなければ使わないでも済みますので、 プロジェクトの性格によってはなるべく使わないという方針も「有り」と思います。
stdio

2019/02/12 00:41

まぁ、頻繁に好き好んで使う物ではないので、案外わすれがちになってしまうのが現状です。 便利と言われてもテンプレートが実装される前のC++を使っていた私からすると、型が決まってないと言われるだけで心配ですね。VBAのVariant型の様な扱いをしてしまいがちです。 VBAは基本Variant型禁止言語ですからね...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問