C言語が解らない人にC++はムリ?
C言語が解らない人にC++はムリ?
前本屋に行き一番解りやすかったのが
やさしいC++だったので購入するつもりでしたが
一様yahooの知恵袋で、C++で良い本はないかと
質問した所、C言語が解らない人はC++も解らない
と言われました
それは本当ですか?
Cは基礎は知っています
表示・入力・計算・繰り返し・構造体は知っています (複雑になると良くわからない)
返り値とポインタはイマイチよくわかっていません
やさしいC++だったので購入するつもりでしたが
一様yahooの知恵袋で、C++で良い本はないかと
質問した所、C言語が解らない人はC++も解らない
と言われました
それは本当ですか?
Cは基礎は知っています
表示・入力・計算・繰り返し・構造体は知っています (複雑になると良くわからない)
返り値とポインタはイマイチよくわかっていません
Re:C言語が解らない人にC++はムリ?
C++言語は、C言語の拡張として開発された言語なので、
C言語にいくつかの機能・仕様を加えたものがC++言語といって過言ではありません。
よって、C++で引き継がれているCの機能が理解できなければ、
それはC++が理解できないと言えるかもしれませんが、
デラ初心者さんが提示しているように、機能によって理解できる、出来ない場合があり、
ポインタが解らなくても、C++で新たに加えられた機能は分かる、という場合もあるでしょう。
ですから、Cが完全に理解出来ない内にC++の入門書を買うことは、別に問題はないと思います。
(Cを全くやらないで、C++から入る人もいますからね)
C++の入門書は、C++で引き継がれているCの機能については解説されていると思うので、
今、いまいちわかっていないポインタ等の機能についても、理解が可能になるかもしれません。
C言語にいくつかの機能・仕様を加えたものがC++言語といって過言ではありません。
よって、C++で引き継がれているCの機能が理解できなければ、
それはC++が理解できないと言えるかもしれませんが、
デラ初心者さんが提示しているように、機能によって理解できる、出来ない場合があり、
ポインタが解らなくても、C++で新たに加えられた機能は分かる、という場合もあるでしょう。
ですから、Cが完全に理解出来ない内にC++の入門書を買うことは、別に問題はないと思います。
(Cを全くやらないで、C++から入る人もいますからね)
C++の入門書は、C++で引き継がれているCの機能については解説されていると思うので、
今、いまいちわかっていないポインタ等の機能についても、理解が可能になるかもしれません。
Re:C言語が解らない人にC++はムリ?
ポインタはともかくとして、戻り値が分からないのはクラスを使う場合に問題があるので、戻り値の何が分からないか聞いても良いですか?
あと、C++に移る理由は何か有るのでしょうか?C言語に限界を感じたとか。
あと、C++に移る理由は何か有るのでしょうか?C言語に限界を感じたとか。
Re:C言語が解らない人にC++はムリ?
C++を使って何をするかにもよります。
Cと同じように、低水準のプログラミングをするつもりならCが分かっていないと無理です。
一方で、C++にしかない便利な機能を使って、高水準なことしかやらないのであれば、Cが分からなくても大丈夫です。
ただし、高性能または高信頼性のプログラムを書こうとするのであれば、Cのレベルのことは必須です。
これはC++に限らず、他の言語でも(スクリプト言語でさえ)ほぼ同じことがいえます。
Cと同じように、低水準のプログラミングをするつもりならCが分かっていないと無理です。
一方で、C++にしかない便利な機能を使って、高水準なことしかやらないのであれば、Cが分からなくても大丈夫です。
ただし、高性能または高信頼性のプログラムを書こうとするのであれば、Cのレベルのことは必須です。
これはC++に限らず、他の言語でも(スクリプト言語でさえ)ほぼ同じことがいえます。
Re:C言語が解らない人にC++はムリ?
以前のスレによると中2とのことですね。
作文を通じても理論的な思考を培ってもらいたいこともあり、
細かいところを突っ込んでおきます。
×:一様(いちよう)
○:一応(いちおう)
> それは本当ですか?
この掲示板はyahoo知恵袋よりも信用できるのですか?
そう思うならば最初からここで聞きましょう。
そうでないならば自分に都合の良い意見を聞きたいだけみたいです。
まあ、気持ちは分かるので、「多くの意見も聞きたいので、
ここでも質問させて頂きました」とでも書けば、ベターだったかな。
でもマルチポストには注意して下さい。
> Cは基礎は知っています
返り値もポインタも知らないようでは基礎を知っているとは言えません。
さわった事がある程度の表現の方が正確です。
> 返り値とポインタはイマイチよくわかっていません
イマイチ・今一という表現は掲示板でよく見られます。
「大体理解しているはずだけれど、この問題は上手く解けない。」
「本当は全く分からないけど(自分に対しても)それを認めたくない。」
というような心理を表したりしているのではないかと思いますが、
この言葉は避けたほうが良いでしょう。
自分がどこまで理解しているかを相手に伝えられないだけでなく、
自分がどこまで理解しているかを自分に対しても曖昧にしてしまいます。
最後に「それは本当ですか?」に対する回答ですが、
C++はCの多くの部分を含みますし、C++として書かれたはずのソースコードにも、
実質的にはCのみで書かれているものが多くあります。
部分的にCのテクニックが使われているものは更に多いです。
このような理由(ちょっと貧弱)から、本当か?と聞かれたら、本当ですと答えます。
最終的にC++をマスターするためには、Cにも精通することは必須だと思いますが、
現時点ではそこまで考えず、まずはC++の入門書で学習するというのが良いでしょう。
その入門書も、今後数限りなくある通過点の1つでしかありません。
作文を通じても理論的な思考を培ってもらいたいこともあり、
細かいところを突っ込んでおきます。
×:一様(いちよう)
○:一応(いちおう)
> それは本当ですか?
この掲示板はyahoo知恵袋よりも信用できるのですか?
そう思うならば最初からここで聞きましょう。
そうでないならば自分に都合の良い意見を聞きたいだけみたいです。
まあ、気持ちは分かるので、「多くの意見も聞きたいので、
ここでも質問させて頂きました」とでも書けば、ベターだったかな。
でもマルチポストには注意して下さい。
> Cは基礎は知っています
返り値もポインタも知らないようでは基礎を知っているとは言えません。
さわった事がある程度の表現の方が正確です。
> 返り値とポインタはイマイチよくわかっていません
イマイチ・今一という表現は掲示板でよく見られます。
「大体理解しているはずだけれど、この問題は上手く解けない。」
「本当は全く分からないけど(自分に対しても)それを認めたくない。」
というような心理を表したりしているのではないかと思いますが、
この言葉は避けたほうが良いでしょう。
自分がどこまで理解しているかを相手に伝えられないだけでなく、
自分がどこまで理解しているかを自分に対しても曖昧にしてしまいます。
最後に「それは本当ですか?」に対する回答ですが、
C++はCの多くの部分を含みますし、C++として書かれたはずのソースコードにも、
実質的にはCのみで書かれているものが多くあります。
部分的にCのテクニックが使われているものは更に多いです。
このような理由(ちょっと貧弱)から、本当か?と聞かれたら、本当ですと答えます。
最終的にC++をマスターするためには、Cにも精通することは必須だと思いますが、
現時点ではそこまで考えず、まずはC++の入門書で学習するというのが良いでしょう。
その入門書も、今後数限りなくある通過点の1つでしかありません。
Re:C言語が解らない人にC++はムリ?
続きを書きます
ごめんなさい
戻り値についてはこの様なプログラムの場合
numの計算結果をsum関数に返し
value = sum();のsumはnumになる?ということでしょうか?
説明が下手ですいません
>イマイチ・今一という表現は掲示板でよく見られます
確かに曖昧になりますね 以後使わないようにします
>そうでないならば自分に都合の良い意見を聞きたいだけみたいです
フォローしてもらい有り難う御座います
漢字の間違いは以後気をつけます
>C++に移る理由は何か有るのでしょうか?
どのように違うのか、やってみたかったからです(最初の何ページか見たところ全然違いました)
ごめんなさい
戻り値についてはこの様なプログラムの場合
numの計算結果をsum関数に返し
value = sum();のsumはnumになる?ということでしょうか?
説明が下手ですいません
>イマイチ・今一という表現は掲示板でよく見られます
確かに曖昧になりますね 以後使わないようにします
>そうでないならば自分に都合の良い意見を聞きたいだけみたいです
フォローしてもらい有り難う御座います
漢字の間違いは以後気をつけます
>C++に移る理由は何か有るのでしょうか?
どのように違うのか、やってみたかったからです(最初の何ページか見たところ全然違いました)
Re:C言語が解らない人にC++はムリ?
>value = sum();のsumはnumになる?ということでしょうか?
>説明が下手ですいません
C言語の戻り値は値返しですので、値しか戻りません。
sum()でsum()の処理を行って、returnでnumの値だけを持って戻ってきます。numの変数スコープは、sum()関数内だけなので抜けてきた時点で存在しなくなっていますから戻すことは出来ません。
=は代入文ですので、右手の計算式の結果を左手の変数に代入するわけですが、sum()という式の結果がvalueに代入されます。やり取りされるのは値だけで変数ではありません。
よろしいでしょうか?
>どのように違うのか、やってみたかったからです(最初の何ページか見たところ全然違いました)
coutやcinの辺りでしょうか。
確かに見た目は違いますが、cin,coutを実現してる仕組みはもっと違います。それがC++のキモなんですけどね。
また、分からないことがあったら聞いてください。
>説明が下手ですいません
C言語の戻り値は値返しですので、値しか戻りません。
sum()でsum()の処理を行って、returnでnumの値だけを持って戻ってきます。numの変数スコープは、sum()関数内だけなので抜けてきた時点で存在しなくなっていますから戻すことは出来ません。
=は代入文ですので、右手の計算式の結果を左手の変数に代入するわけですが、sum()という式の結果がvalueに代入されます。やり取りされるのは値だけで変数ではありません。
よろしいでしょうか?
>どのように違うのか、やってみたかったからです(最初の何ページか見たところ全然違いました)
coutやcinの辺りでしょうか。
確かに見た目は違いますが、cin,coutを実現してる仕組みはもっと違います。それがC++のキモなんですけどね。
また、分からないことがあったら聞いてください。