質問するログイン新規登録

Q&A

解決済

7回答

922閲覧

C++は何から勉強するべき?

S-Andy

総合スコア3

C++

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

1グッド

2クリップ

投稿2026/06/08 13:31

1

2

テーマ、知りたいこと

これからC++を勉強するとなったら何から始めるのがいいのでしょうか?

背景、状況

岡本斗志貴、中村優吾、ジョン・マエダさんのような映像作品を作りたいと思いインタービュー記事などを読んでいる際に、C++やJavaなどで映像作品を作成しているということを知りました。そこで、C++をゼロから学ぼうと思い質問させていただいています。

##調べたこと

岡本斗志貴さんはモーショングラフィックスを作成する際openFrameworksのライブラリを使用しC++でコーディングを行なっているそうです。

##補足情報

記事:https://designing.jp/tha-nakamura
https://ceps.morisawafonts.com/mf-roadtoinnovation/20250801

Seojun👍を押しています

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

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

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

BeatStar

2026/06/08 14:08

どこまで理解できていますか? 入門書レベルは理解していますか?
S-Andy

2026/06/09 00:24

返信ありがとうございます。 正直、調べ始めたばかりで入門書レベルも理解できてないです。
jean613

2026/06/10 07:53

映像作品制作を目的にC++を学ぶのであれば、まずはC++の基礎文法から学ぶことをおすすめします。 具体的には以下の順番が良いと思います。 1. 変数、条件分岐、ループ 2. 関数 3. クラスとオブジェクト指向 4. STL(vector、stringなど) 5. ファイル操作 6. グラフィックスライブラリ 基礎を身につけた後に、openFrameworksやCinderなどのクリエイティブコーディング向けフレームワークを学ぶと良いと思います。 いきなりopenFrameworksから始めるとC++自体の理解が難しくなる場合があるため、まずは標準的なC++の入門書や学習サイトで基礎を固めることをおすすめします。
thkana

2026/06/13 00:06

「映像作品を作りたい」のなら、別にそれができるだけの知識を得られればいいのであって、C++を制覇しよう、みたいな方向に行く必要は無いように思うのですけれど... もちろん、それはそれで決して悪いことじゃないとは思いますけれど、それならそれなりの覚悟は必要になりますよね。「その覚悟はすでに固めている」というのでしたらご放念ください。 彼氏彼女が外国人だったとして、お付き合いを深められるだけ相手の言語がわかればいいのだけれど、なにかの論文が書けるとか、政治家として演説ができるとかまで学ぼうと思っちゃった、そんな話を聞いた感じかなぁ。いや、この場では余計な茶々をいれずに黙って聞かなきゃいけないのだろうか、もしかして。 #私は「クリエイター」じゃないのでProcessingでおなかいっぱい。
chenxianming

2026/06/16 06:05

きっと難しいですよねC++
seojun.mdx

2026/06/16 10:57

ちょうどいい質問です。 まず前提として、岡本敏樹さんや中村勇吾さん、John Maedaさんが使っているのはC++やJavaそのものというより、その上に乗っているフレームワークです。映像表現の文脈で言えば、openFrameworks(C++ベース)かProcessing(Javaベース)がほぼ確実にそこに入ってきます。 なのでC++を「ゼロから」学ぶ前に、まずopenFrameworksを触ってみることをおすすめします。理由は単純で、成果物がすぐ見えるからです。C++の文法を一通りやってから映像表現にたどり着くまでには、かなり時間がかかります。openFrameworksなら最初の1時間で何かが動く。 学習の順番としては、 openFrameworks公式サイトのサンプルをそのまま動かす コードを少しずつ変えて何が起きるか確認する わからない構文が出てきたときにC++の基礎を調べる この順番のほうが続きます。文法から入ると、映像と関係ない概念に時間を取られてモチベーションが落ちやすいです。 中村勇吾さんの初期作品はProcessingに近い環境で作られているものも多いので、ProcessingをC++と並行して触るのもありです。こちらはさらに入門コストが低い。 どちらにせよ、言語より「何を作りたいか」を先に決めておくと学習の方向が定まります。
guest

回答7

0

cametanさんの書き込みは、いつも勉強になるけど今回は異議ありです。
そんな古い本(2016年ってことはC++17より前? 古い)でHello worldから始めるなんて、たぶん眠くて続かないと思います。

おお、お褒めに預かり光栄です。
んで、C++はCと違って国際標準仕様の改訂が早いですからね。すぐ「古くなる」ってのも確かにその通りでしょう。
ただ、何故にC++プライマー 第5版なのか。他のC++を使ったプログラミング入門書、ってのは「C++はオブジェクト指向言語である」と言う前提で書かれていて、結果解説に割かれるページはその辺です。
ところが、C++プライマー 第5版って本はかなり早い段階でSTLに入っていく。かなり思い切った構成で、こういう本って日本の本じゃ知ってる限りないんですよ。大体、STLを扱わないか、あるいは、オマケに押しやられてるんじゃないのかしらん。ホント、国産の入門書でSTLをほぼ最初の段階で扱う、って本があったら是非とも知りたいくらいです。
「プログラミング初学者向け」を考えるとSTLをまずは扱う、ってのが一番簡単なんですよね。初学者段階で色々出来るし。まぁ、そういった理由でC++プライマー 第5版を推挙しています。STL自体も国際標準仕様の初版から入ってるのに、なんでほとんどの国産の本で扱いが粗雑なのか全然分からんし、また、C++の熱狂的なファンってSTLのファン、翻るとジェネリックプログラミングのファンなんですよね。オブジェクト指向のファンではない。
だからC++の熱狂的ファンと国産C++入門書の間にはどういうわけか深い溝がある(ちなみに僕は違いますよ・笑?)。

あと、Web上のcpprefjp - C++日本語リファレンスのデキが大変良くって。例示も豊富で、僕みたいなC++専門じゃない人でも見様見真似でプログラミング出来るくらいに整ってる(笑)。素晴らしい。この辺が他のプログラミング言語が、C++に勝てない辺りなんだよなぁ(笑)。
おそらく、若干古いC++プライマー 第5版で学んだとしても、最新仕様はcpprefjp - C++日本語リファレンスに随時反映されるだろうし、ある程度基礎的なモノを学んだらcpprefjp - C++日本語リファレンスを参照すれば最新機能にも簡単に触れられるだろう、ってのが僕が考えてたことです。

投稿2026/06/08 16:50

cametan

総合スコア338

hiroki-o

2026/06/09 10:22

cpprefjpの出来がいいのは同意します。C++に関してググったら、そこかMicrosoftかで用は済みますね。
guest

0

ベストアンサー

「C++プライマー第5版」に興味を持たれたんですね。あの本、確かに内容はいいんですけど……正直なところ、いきなりあれから始めるのはちょっとキツいと思います。

というのも、S.Andyさんには「映像作品を作りたい」というハッキリした目的がありますよね。あの本を最初から順に読もうとすると、細かい文法事項にどんどん埋もれてしまって、「そういえば俺、何がしたかったんだっけ?」という状態になりがちです。よくある挫折パターンです。

代わりに、こんな感じで進めてみてはいかがでしょう。

1. とにかくopenFrameworksを動かす

hiroki-oさんもおっしゃってますが、まずは環境を作ってサンプルを動かしてみてください。公式サイト(https://openframeworks.cc/ja/)のチュートリアルが親切です。「動いた!」という実感が、何よりも学習を続ける力になります。

2. 詰まったらその場で調べる

サンプルコードをいじっていると、必ず「この書き方、意味わからん」という箇所が出てきます。そこでC++の文法を調べればいいんです。たとえば「ofVec2fって何やねん」→「クラス」について調べる、「&って何」→「参照」について調べる、という具合に。

3. 『C++プライマー』は辞書として使う

あの本は通読するものではありません。「あれ、この文法ってどうだっけ」と思ったときに開く辞書みたいな存在です。ひと通り作品が作れるようになってから、「もっと深く理解したい」と思ったときに改めて読めば十分です。

つまり

  • 今すぐやること:openFrameworksを入れて、サンプルを動かす
  • 買ってもいいもの:『C++プライマー』は買ってもいいけど、最初から読もうとしない
  • やめといたほうがいいこと:何週間も文法書を読んでから「さあ作るか」と始める

映像作品を作りたいという明確な目標があるのは、すごく強い武器になります。その気持ちを冷まさないためにも、「作るために学ぶ」を徹底してください。

投稿2026/06/09 07:18

blixor

総合スコア77

hiroki-o

2026/06/09 10:24

その本持ってるなら教えてください。標準C++のバージョンは何ですか?
cametan

2026/06/09 11:12

C++ 5th?C++11 ISO Standardだったと思うな。そういう意味だと確かに古い。C++20だとマルチスレッドが強化されて、コルーチンが追加されたんだっけ?
blixor

2026/06/09 11:51 編集

『C++プライマー 第5版』はC++11がベースで、確かに古いです。C++17、C++20、C++23と機能追加が進んでいる現在では、この本だけでは最新の書き方はカバーできません。 ただ、あの本を推す人の意見としては、「C++11以降のモダンC++のエッセンスは十分に詰まっている」というのが多いですね。スマートポインタ、ムーブセマンティクス、ラムダ式など、今のC++を書く上で欠かせない概念はちゃんと入っています。 とはいえ、S.Andyさんが「映像作品を作りたい」という目的なら、なおさら最新バージョンにこだわる必要はないと思います。openFrameworks自体も、長らくC++11〜14あたりをベースにしている部分がありますし。 結論としては、『C++プライマー』は「C++の深い理解を得るための2冊目」としては良い選択肢だけど、「まず動かすための最初の1冊」ではない。そのスタンスは変わりません。 そして、最新機能を知りたくなったらcpprefjpを見ればいい。cametanさんもおっしゃっていましたが、あのサイトの出来は本当に素晴らしいです。
guest

0

まず基礎文法(ポインタの基本まで)の学習を終えたら、共有ライブラリの仕組みを学びましょう
主に静的リンクとヘッダーファイルの仕様(目的)を学んでおくと良いです
解説書だとファイルのリンクまでは触れていてもライブラリのリンクに踏み込んでいるものが少ないので、リンカエラーが初学時の最大の障壁となりがちです
上記二点を抑えておくだけでもこのエラーに対する解決難度は下がります

投稿2026/06/09 04:55

Manabu

総合スコア165

0

本当の本当にゼロからやるという話なら,いずれにせよ基礎的な文法みたいなのを学ぶことは避けられないハズ.
その際に参考とする物は,まぁ本でもWebサイトでも何でもいいだろうと思うけども……
別にそれを1つに絞る必要はないのだから,まずは気軽にいろいろ見てみればいいんじゃないかな.

選定に関しては,超個人的には

まずその本なりサイトなりで「ポインタ」の話をしている場所を覗いてみて,
そこに「ポインタは難しい」だとか「初心者はポインタで詰む」みたいな噓八百都市伝説無駄話の類が書かれていないかを確認する
(→書かれていたらその 本/サイト/etc は避ける)

ということをすると良いんじゃないかな,とか思ったりするけども.

投稿2026/06/09 01:58

fana

総合スコア12424

fana

2026/06/10 02:32 編集

他の回答等でも同様のことが多々言われているけども, C++「を」勉強する,という取り組み方だと「そのゴールはどこすか?」っていう話になり得るから 例えば「このサンプルの,この部分を,読む/変更する という短期目標のために必要な事柄を学ぶ」みたいな感じでやっていくのが現実的だと思う. あと,何かプログラミング言語を学ぶという場合,基礎的なことを実際に試してみようとかいう際に 本質(=試したい事柄)ではない入力や出力の手段のところで不自由すると大変に辛いと思うので, openFrameworks なるものがそこら辺を簡単にやれる手段を提供してくれる物なのであれば それを使う世界の中でいろいろ試すのが良いのだろうと思う. (例えば,「入力は標準入力からで,標準出力に結果を出力して……」とかいう世界で「何か入力がうまくやれない…」みたいなところで無駄に引っかかるのは,ほぼ時間の無駄)
guest

0

cametanさんの書き込みは、いつも勉強になるけど今回は異議ありです。
そんな古い本(2016年ってことはC++17より前? 古い)でHello worldから始めるなんて、たぶん眠くて続かないと思います。
標準C++自体にはグラフィックスやサウンドの概念は無いので。

openFrameworksで何かを作りたいという目的があるなら、いきなり環境を作って公式サイトのチュートリアルやサンプルソースを試すことをお勧めします。
公式サイト
https://openframeworks.cc/ja/

C++の文法でわからないことがあれば、その都度ググるなりAIに聞くなりすればよいでしょう。
openFrameworksに限らず、やりたいことが決まっているなら、そうやって天下り式に勉強したほうが楽しいと思います。

投稿2026/06/08 15:39

hiroki-o

総合スコア1850

S-Andy

2026/06/09 00:34

返信ありがとうございます。 openFrameworksの環境を作り、手を動かしつつ教えていただいた本も参照しようと思います。
guest

0

あんまC++には詳しくない、ってのが正直なトコだけど、どれか1つ本を選べ、ってのなら次の本がオススメ、と言う話を聞いたことがある。

取り敢えずこれ一冊やればいいでしょ。ヘンな国産の「C++入門」ってのは買わないこと。大体、プログラミング入門書関連(に実は限らないんだけど)は翻訳書の方が遥かにマシ。
そこそこ高い本なんで(とは言っても、プログラミング関連では「本を買う」のは常態化するんで、下手な本数冊買うことになるよか安いたぁ思う)、図書館辺りで取り寄せてもらってまずは現物を見てみることをオススメする。

あとは取り敢えずはWindowsならVisual Studio 2026 Community版でも導入して、本で書かれてるコードを打ち込んで学んでいくのが一番、ってことになる。

投稿2026/06/08 14:22

cametan

総合スコア338

S-Andy

2026/06/09 00:30

返信ありがとうございます。 ひとまず「C++プライマー 第5版」を見てみたいと思います。
cametan

2026/06/09 07:24

> ひとまず「C++プライマー 第5版」を見てみたいと思います。 うん、まずは図書館ででも取り寄せられるか訊いてみて。 どうしても「合う」とか「合わない」とかあるからね。 それと、hiroki-o氏が言ってることも正しくて、ちょっと整理しておくけど。 「なにかやりたい」って場合、つまり具体的な目標がある場合は、だ。それをもう「作る」前提で勉強する、ってのも悪くない。 ちょっとhiroki-o氏の発言で誤解されるかもしんないけど、 > 標準C++自体にはグラフィックスやサウンドの概念は無いので。 これは正しいんだけど、実のこと言えば「ほぼ全てのプログラミング言語(C++も含めて)には仕様上、グラフィックスやサウンドの概念は無い」の。どれもほぼそうなのね。 となると、グラフィックスやサウンドってのは「プログラミング言語外」の外部ライブラリでどうやるか、って話になる。「どの言語でもほぼそう」なんだ。 言い換えると、言語仕様とグラフィックス/サウンドライブラリは別に存在してて、あなたが挙げたopenFrameworksの話も、C++の知識が必要になるにせよ「外部ライブラリ」の話になるんだ。 要は、「外部ライブラリの使い方」ってのはまた別の話になるんだよね。 そんな中、「実際に外部ライブラリを使って作りたいものを作ろうとする」トップダウンのやり方と「言語の基礎からプログラミング方法を学ぶ」ボトムアップのやり方、って多分平行してやっていったほうがいいと思う。どちらかでなければならない、ってことじゃなくてさ。 頑張ってください。
guest

0

openFrameworksをGoogleやYouTubeで調べてみる
YouTubeでヒットした動画を見てみる、実際に環境構築して作りたいものを作ってみる、

それをしながら、
この作業ではC++の仕様的な知識が身につかないので、パソコンを触れない、作業できない、空き時間に仕様書をみる

この2軸で続ける

投稿2026/06/09 12:33

u2025

総合スコア291

u2025

2026/06/09 12:37

手を動かすのはとにかく作りたいものを作るため、だけでいい。 基本的な文法レベルで手を動かしながら学ぶはしたけりゃしたらいいけどそっちが目的になるんで、暇な時に読んだりするレベル感でいい 最終的にはここでアドバイスされたものではなく、自分がしたいことを学ぶのがいい。教える側の都合として必ず、学んで欲しいことのバイアスがかかってしまうから。特にここで回答をするような人は詳細な言語仕様が好きだからみんなにも学んで欲しいみたいな人もいるから。 もちろん質問者がそれを学びたいなら好きにしたらといいと思いますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問