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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

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

Q&A

6回答

3182閲覧

c++の勉強法について

motyo

総合スコア6

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

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

0グッド

1クリップ

投稿2018/03/30 12:52

専門学校に通いながらc言語学んでいます。
今は、春休み中なので独学でc++の勉強をしているのですが、難しすぎてやる気を無くしそうです。
c言語を使って2本ゲームは作りました。
使っている参考書は、独習c++(4版)です。

コピーコンストラクタから意味が分からなくなり、thisポインタや、参照とポインタの違いも判らない...

一旦c++をやめて、c言語でたくさん問題を解いてから勉強を再開するべきでしょうか?

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

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

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

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

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

can110

2018/03/30 12:58

どのようなゲームを作ったのか追記すると適切な回答が得られやすくなるかと思います
deadjupiter

2018/03/30 12:58

C++やる目的は?どうしてもC++でなければならない理由があるの?
guest

回答6

0

こんにちは。

手前味噌ですが、ある程度C言語を把握している人向けに、C++の解説を書いてます。
なるべく実践的な内容にしているつもりです。開発ツールとリンクしたC++解説はあまり多くはないですが、C++11に対応しVC++とgccの開発ツールともリンクしています。もし、良かったら参考にされて下さい。

C++講座

一旦c++をやめて、c言語でたくさん問題を解いてから勉強を再開するべきでしょうか?

結果としてそのような構造になってます。C++の基礎に入る前にコンピュータの基本を学んでおくべきと思いますので。

投稿2018/03/30 14:39

Chironian

総合スコア23272

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

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

motyo

2018/03/30 17:31

ありがとうございます。このサイトをみて頑張ってみます。
guest

0

直接の回答ではないですが、teratailにもC++の未解決な質問(ちょっと見で100以上)が有ります。
それを考えてみるのも手かもしれません。(調べる事で私には、けっこう勉強になっています)
・・・そして、答えが見つかった時にはみんなに教えてあげましょうv^^

投稿2018/04/02 11:51

cateye

総合スコア6851

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

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

0

一旦c++をやめて、c言語でたくさん問題を解いてから勉強を再開するべきでしょうか?

いいえ。ただの遠回りです。やるとしてもCでは問題を3倍難しくしているだけです。

そうではなく、コンピュータそのもののについて知る必要があります。


Qiitaには玉石混交ながらいい記事も多くあるのでC++の記事を漁ってみるといいでしょう。

手前味噌ですが

投稿2018/03/31 00:56

yumetodo

総合スコア5850

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

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

0

そもそもなぜ C++ ができたか、という点を把握していれば少しは理解の助けになるのですが……

まず、C は非常に強力な言語で、その強力さを支える太い柱がポインタです。ポインタを効果的に使用することで、C は柔軟性と高速性を兼ね備えましたが、同時に脆弱さも内包しました。分かっていないでポインタを不用意に使うことは、危険極まりないのです。(何でもできるが故に、どんなことでも起きてしまう)

C における利点と欠点、そして大規模化するシステムに対するオブジェクト指向というアプローチから、C++ が「オブジェクト指向のようなもの」を C に組み込む形で開発されます。このとき、C のポインタの機能を利用する形で対処されたのです。
そのため、C++ でオブジェクトを使うときは、その内部的な表現であるメモリイメージや、ポインタをある程度理解していないと訳が分からなくなります。

参照とポインタが分からない、と書かれましたが、参照とは言い換えると「機能を制限して安全に使えるようにしたポインタ」なのです。
this ポインタはオブジェクト自身を指すためのポインタです。メンバを指定する際に利用します。
そしてコピーコンストラクタは、なぜこれが必要かは、そもそもオブジェクトとは何か、を理解することができれば自ずと分かってくるでしょう。

まずは「オブジェクト指向って何?」から勉強されるとよいですよ。

投稿2018/03/30 15:16

tacsheaven

総合スコア13703

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

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

motyo

2018/03/30 17:32

javaの参考書になりますが、オブジェクト指向についての解説の本があるのでそれを読んで頑張ってみます。
guest

0

わかったつもりの部分の例題を実際にタイプして解くとか、似たようなプログラムを沢山書くのがいいと思います。コンストラクタがそもそも何故要るのか、変数の初期化とは何か、整数のような単純な型の変数の初期化とnewされるメンバがあるクラスインスタンスの初期化で何が違うのか、という辺りの理解が薄いのではないかと思います。

投稿2018/03/31 13:53

gm300

総合スコア580

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

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

0

Cでは状況は特に変わりません。

苦しみながら細かいことをやり遂げるか、pythonのように気にしなくてもとりあえずは走る言語にするかでしょう。

golangならc++から少しハードルが下がるかもしれませんが。


効率的なコードを書くのならいずれにしろ気にすべき問題ではあります。
c++は自分で処理することで解決でき、pythonなら特別な書き方をすることでインタプリタに察してもらいます。

投稿2018/03/30 13:02

mkgrei

総合スコア8560

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

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

motyo

2018/03/30 17:16

大変ですが、c++で頑張りたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問