CとC++の長所、短所を教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

環境に依存する要素も含めるとC/C++以外の領域まで学習しないといけませんね。


処理速度が速い反面、とにかく学習には時間のかかる言語です。
    • good
    • 0

プログラミング言語に長所も短所も無い。


作りたいものを先ず決めないと・・・。

C++は、オブジェクト指向をサポートしている実践的なプログラミング言語である。ただし、人間の思考がそのままコードに反映されるため(つまり、何通りもの書き方ができるため)他人のコードを読むのが辛い。C++の言語仕様が決まるまでの過程を考えると仕方がないのだが、意味も無く複雑な言語仕様になっている気がする。欲張りすぎ。あと、標準ライブラリが提供されるまで時間がかかったので、みんなが勝手に作り出したライブラリが多すぎて混沌としている。

それに比べCはシンプルでわかりやすい。経験を積んだプログラマならみな大抵同じようなコードを書くので、共同開発には向いている。ただし、オブジェクト指向風のプログラムを書こうとすると面倒。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qあいだみつおの言葉で探しています↓

あいだみつお氏の言葉で・・
”いつかじゃなくやるなら今じゃなきゃだめなんだ・・!”
見たいな趣旨の言葉があったかと思うのですが正確なのを
お教え頂けませんか?
確か数ヶ月前JRの列車のドアの上のディスプレイで見て
感激した記憶があります。
また実際の作品の写真が載っているHPを御存知でしたら
それも併せて案内くださいませ!

Aベストアンサー

この中に在るかな?
http://www.din.or.jp/~honda/tokio20b.htm#c3

QC++配列の型に関するC++規格について教えていただきたいです。

C++配列の型に関するC++規格について教えていただきたいです。

以前にYahoo知恵袋でも質問しましたが、答えが得られませんでしたので、こちらでも質問させていただきたいと思います。


※以下、質問になります。(分かり難いかも知れませんが宜しくお願い致します。)


環境は、Visual Studio 2010 (C++) です。

std::fill_n() で次のような警告がでましたので、調べていましたところ、
...\xutility(2801): warning C4996: 'std::_Fill_n': Function call with parameters that may be unsafe - ...

次のような定義方法を見つけました、
typedef char (&std::tr1::_No)[1];
↑このような定義方法があることを初めて知りました。

ちなみに、std::fill_n() は次のようになりました。
long data[32];
std::fill_n(data, 32, 0); ←正常

long* p_data = data;
std::fill_n(p_data, 32, 0); ←warning

long (&a_data)[32] = data;
std::fill_n(a_data, 32, 0); ←正常


知りたいのは、配列を関数に渡すときに、
通常は、void func(long* pd); のようにポインタで渡すと思います。
また、void func(long pd[]); や void func(long pd[32]);
もポインタの場合と同じになりますが、型保証がありません。
これはC++規格で規定されていることだと思います。

次のようにすると、型保証がされますが、この記法がC++の規格として規定されているかを知りたいです。
1. void func(long (&ad)[32]); // 関数呼び出しは、func(data);
2. void func(long (*pd)[32]); // 関数呼び出しは、func(&data);

また、通常のポインタで配列を渡すことを、配列の参照渡し?と言うと思いますが、
この1,2,は何渡し?と言われるのでしょうか?


#長い文になって申し訳ありませんが、宜しくお願い致します。

C++配列の型に関するC++規格について教えていただきたいです。

以前にYahoo知恵袋でも質問しましたが、答えが得られませんでしたので、こちらでも質問させていただきたいと思います。


※以下、質問になります。(分かり難いかも知れませんが宜しくお願い致します。)


環境は、Visual Studio 2010 (C++) です。

std::fill_n() で次のような警告がでましたので、調べていましたところ、
...\xutility(2801): warning C4996: 'std::_Fill_n': Function call with parameters that may be unsafe - ...

次のよう...続きを読む

Aベストアンサー

> 次のようにすると、型保証がされますが、この記法がC++の規格として規定されているかを知りたいです。
> 1. void func(long (&ad)[32]); // 関数呼び出しは、func(data);
> 2. void func(long (*pd)[32]); // 関数呼び出しは、func(&data);

規定されています。

> また、通常のポインタで配列を渡すことを、配列の参照渡し?と言うと思いますが、

それは便宜的な表現です。
言語仕様上はあくまでも値渡しです。

> この1,2,は何渡し?と言われるのでしょうか?

1.は参照渡しですが、2.は(ポインタの)値渡しです。

Q面接やエントリーシートでの長所と短所

面接やエントリーシートで長所と短所を聞かれることがあるようで、そのために準備をしています。

長所は裏返せば短所、短所は長所というようになっているようですが、
例えば、長所は真面目です。短所は優柔不断です。のように関係ないことでも大丈夫でしょうか?
逆になるように揃えなければならないようでしたら、そろえようかと考えています。

ちなみに真面目の短所って何だと思いますか?

Aベストアンサー

就活生で、同じくエントリーシートを記載中です。

今まで特にそういったことを考えて長所、短所を書いたことはありませんでした・・・。

ですが、逆になるよう揃えなければならないのなら、自分だったら無理やり揃えてしまうかもしれません。


例えば長所に真面目と書き、短所を優柔不断としたいのであれば、「真面目故に何かを決める際に真剣に悩んでしまい、結果的に優柔不断になってしまいます。」等。
真面目⇔優柔不断は結構関係あるように思います。


また、真面目の短所ですが、あえて挙げるならば
「融通が利かない」
かな、と個人的に思います。

QC,C++,C++/CLIの構造体とクラス

C++の構造体・クラスって、メンバのアクセス指定子のデフォルトが
privateかpublicかという違い「だけ」しか全くないのでしょうか?

クラスにおける
value class / ref class
という分類はC++/CLIのもので
これについては
value class の方は C言語の構造体に近いという事でいいでしょうか?

ref classの方は
ネイティブのC++のクラスを
マネージ用にしたようなもので

C++/CLIの構造体は
C++のそれと同じで
OKですか?

そしてそれらの構造体には、値型・参照型といった分類はないのでしょうか?

Aベストアンサー

> ということは、structも継承可、という事でしょうか?

structでも継承可能です。

> 継承のアクセス指定の方は
> クラスと構造体ではどうなるのでしょうか?

class A : Base {};



class A : private Base {};

と等価です。
一方、

struct A : Base {};



struct A : public Base {};

と等価です。

> そして「集成体」というのが初めて知ったのですが
> これはいわゆる、配列や・・・ある条件下でのクラス・・?
> なのでしょうか?

配列と以下の条件をすべて満たすクラスのことです。
・ユーザー定義のコンストラクタを持たない
・非公開または限定公開のメンバを持たない
・基底クラスを持たない
・仮想関数を持たない

ちなみにC言語の集成体は、配列と構造体の総称です(共用体は集成体ではありません)。

Q長所、短所について

就活が終わり、もう進路は決まっているのですが、
就活中の面接で疑問に思ったことがあったので教えてください。

ズバリ、長所・短所についてなのですが、
就活の初めに使ってた短所があまりいい印象をもたれなく、
面接落ちばかりしていたので、途中からアピール方法を変えました。
それは「こういう性格が、時に短所になり、時に長所にもなる」
といった感じのものです。
長所・短所だけが原因とも思えないんですが、それ以降の面接はうまく進んで今に至るので、このアピールでよかったと思ってました。

ところが、一社、最終面接でこのアピール法を否定されました。
『あなたの短所を直すと同時に長所もなくなって無になるけどそれでいいのか?
普通長所・短所ってこういうもんじゃないでしょ?
それとも何?短所自覚してても直す気はないの?』
いわゆる圧迫面接のようで、軽くパニックになって変な受け答えになってしまいました。

そこで質問なのですが、長所・短所とは、
普通は「時に長所となり時に短所になる」といった曖昧なものではなく、
長所はA、短所はBとハッキリ言えるものなのでしょうか?

お暇なときでいいので、教えてください。

就活が終わり、もう進路は決まっているのですが、
就活中の面接で疑問に思ったことがあったので教えてください。

ズバリ、長所・短所についてなのですが、
就活の初めに使ってた短所があまりいい印象をもたれなく、
面接落ちばかりしていたので、途中からアピール方法を変えました。
それは「こういう性格が、時に短所になり、時に長所にもなる」
といった感じのものです。
長所・短所だけが原因とも思えないんですが、それ以降の面接はうまく進んで今に至るので、このアピールでよかったと思ってました...続きを読む

Aベストアンサー

私も先日まで就職活動をしていました。そこで考えたこと・聞いたことからお答えします。

私は長所はA、短所はBとハッキリ答えました。で、短所にしかならない短所を言う場合は、これから自分はどうやってその短所を(できれば入社までに)克服するつもりかを一緒に言っていました。たとえば少し人見知りだという短所なら、接客のアルバイトをするなり、卒論で多くの人にインタビューすることで改善していきたいとか。
(余談ですが…)人材系の大手企業で聞いたのですが、短所がないという回答は基本的に自己分析が甘いと見られるそうです。短所がない人間なんていないんだから。問題はそれをどう自覚して、どう改善していくかという姿勢だといわれました。その姿勢さえ示せれば、自己PRになります。

質問者様が自分に短所がないと考えているのなら、それは自己分析が甘かったか、短所について考え違いをしているのだと思います。短所というのは、別に致命的な短所でなくてもいいんです。
たとえば、大勢の人の前でのプレゼンテーションは得意ですか?私は多少緊張して萎縮してしまいますが、準備を整えて無難に行うことができます。平均的な学生よりは場数を踏んでいるし、大抵の人よりは上手です。5段階評価の通知表でいえば3以下では絶対にないと思います。だからそれは短所ではないと考えるかもしれません。でも私にとってそれは、「大勢の前だと、少し萎縮してしまう」という短所なんです。私の周りにはそういった発表がうまい人(通知表でいえば5の人)が何人かいるし、大勢の人に考えを伝えられる機会を、フルに活用できないからです。社会人になったとき、それは絶対的に損ですし。
短所というのは、一般的な平均より劣っている自分の能力ではなく、自分の理想・輝くほど活躍している人を目標として、まだ届いていない能力でいいんです。
極端に言えば「長所でない部分=短所」と考えてしまっても平気です。面接だったら、それにプラスして「これから短期間で改善できるorすでに改善しかけている」という条件に見合う部分を言えばよかったと思います。


あと、「時に長所となり時に短所になる」というのは、「私の長所は人に気をつかえるところ、短所は気を使いすぎておせっかいになってしまうところです」というようなことでしょうか。そうだったら無難すぎて、教科書どおりだなと思われてしまったのかもしれません。
「直す気ないの?」という問いに関しては、(このPRの場合ですが)「客観的に自分を見つめ、周りからも意見を集めて、気遣いがおせっかいにならないような節度を身に着けたいと思います」というように言えばよかったと思います。そうすれば自分の長所をさらに磨こうとする姿勢もアピールできますし。これに当てはまらなかったらごめんなさい。

ただ、直すべき短所がない・短所を自覚できないということは、成長する『のりしろ』が少ないということになってしまうので、あまり好まれないことがあるようです。

※大勢の前でのプレゼンテーションのくだりは、作り話です。私はあまり得意ではありません。分かりやすく説明しようとの例え話です。

私も先日まで就職活動をしていました。そこで考えたこと・聞いたことからお答えします。

私は長所はA、短所はBとハッキリ答えました。で、短所にしかならない短所を言う場合は、これから自分はどうやってその短所を(できれば入社までに)克服するつもりかを一緒に言っていました。たとえば少し人見知りだという短所なら、接客のアルバイトをするなり、卒論で多くの人にインタビューすることで改善していきたいとか。
(余談ですが…)人材系の大手企業で聞いたのですが、短所がないという回答は基本的に自己分...続きを読む

Q【VC++】MFC、C++/CLI(CLR)、C#の違い、及び、これからの展望

いつも大変お世話になっています。
VC++初心者です。

VC++6.0(MFC)、VC++2005(CLR)(C++/CLI)(Express Edition)を
同時期に使い始めて何ヶ月か経ちました。
現在では、CLIの方が圧倒的に開発スピードが早く(扱いやすい)、
逆に、MFCの開発スピードが遅く(扱いにくい)、イライラしっぱなしです。
(CLIの開発では、WEBにあるC#のコードを参考にしながら、
 コーディングしています。)

そこで、何点か疑問に思ったので、ご回答頂けませんでしょうか。
(1)CLIとC#を区別した理由は何なのでしょうか。
(2)MFCはこれからも使われるのでしょうか。
 (MFCで新規開発をすることは、まだまだ大勢なのでしょうか。)
(3)VC++2005以降、MFCは有償らしいのですが、
 VC++6.0(MFC)とVC++2005(MFC)は何か変わったのでしょうか。
 (コーディングしやすくなっていますか?)
(4)個人差はあると思いますが、開発スピードが一番早いのは、
 CLR、C#、MFCのどれでしょうか。
 
すぐに返信ができないと思いますが、
宜しければ、ご回答頂けると幸いです。

いつも大変お世話になっています。
VC++初心者です。

VC++6.0(MFC)、VC++2005(CLR)(C++/CLI)(Express Edition)を
同時期に使い始めて何ヶ月か経ちました。
現在では、CLIの方が圧倒的に開発スピードが早く(扱いやすい)、
逆に、MFCの開発スピードが遅く(扱いにくい)、イライラしっぱなしです。
(CLIの開発では、WEBにあるC#のコードを参考にしながら、
 コーディングしています。)

そこで、何点か疑問に思ったので、ご回答頂けませんでしょうか。
(1)CLIとC#を区別した理由は何なのでしょうか...続きを読む

Aベストアンサー

私も私見ですが。

> (1)CLIとC#を区別した理由は何なのでしょうか。
CLIはC++的だが、C#はJava系の文法。近いけど遠い。
要するに慣れ親しんだC++を使いたい人向け。

> (2)MFCはこれからも使われるのでしょうか。
市販ソフトメーカーなど企業で資産のあるところは使っていくでしょうね。シェア・フリーソフトの作家でもそうですが。
C#とCLIは、インストール時に.net frameworkのインストールがあるから嫌われている所があるんじゃないでしょうか。.net系のソフトですよってばれますし。逆コンパイルがネイティブより容易ってのがライセンス認証しているメーカーとかシェアウェア作者さんには気になるポイントでしょう。一応難読化ツールもありますが。

> (4)個人差はあると思いますが、開発スピードが一番早いのは、
> C++/CLI、C#、C++とMFCのどれでしょうか。
C#かなぁ。
まぁ、面倒なソフトになったらどれでもさほど変わり無い気がしますね。ただ、.NET系はガベージコレクションがうれしいですが。

私も私見ですが。

> (1)CLIとC#を区別した理由は何なのでしょうか。
CLIはC++的だが、C#はJava系の文法。近いけど遠い。
要するに慣れ親しんだC++を使いたい人向け。

> (2)MFCはこれからも使われるのでしょうか。
市販ソフトメーカーなど企業で資産のあるところは使っていくでしょうね。シェア・フリーソフトの作家でもそうですが。
C#とCLIは、インストール時に.net frameworkのインストールがあるから嫌われている所があるんじゃないでしょうか。.net系のソフトですよってばれますし。逆コンパイルが...続きを読む

Qあなたの短所は ? それ良く表現すると何に・・・

人にはそれぞれ長所・短所がありますよね。

その「短所」についです。

私の会社の上司が
「俺には短所があるところが長所だ !」と訳のわからんことを言ってます(笑)
では、ここでお答えをお願いしたいと思います。

1.皆さんが自分の短所と感じておられることは何ですか ?

2.その「短所」をうまく言うとどんな表現に変わりますか ?

Aベストアンサー

1.マイナス思考
 落ち込みやすい
 臆病
 ときどき爆発する
 仕事が遅め
 人を羨む
 PCやりすぎ 

2.謙遜する,最悪の事態を予測する
 繊細な心の持ち主
 慎重派
 自分の意見をしっかり言える
 仕事の一つ一つが丁寧
 向上心がある
 ネット社会に貢献
 

QC/C++でマウスのクリックとホイールの動きを入力とするにはどうやってすればいいか教えてください

CかC++のプログラムでマウスのクリックをすると0を返すプログラムと、マウスのホイールの動かすとその動きを出力するプログラムの2つを作りたいと思っています.
C/C++ではマウスの入力はできないのでしょうか?
できるのならやり方を教えてください(>人<;)

Aベストアンサー

ほかの方もいくつか回答しておりますが、それ自体は正しいのと思うのですが、
この質問者への回答としては不適切に思いますので、私も回答をしてみようと思います。

C言語とC++言語の仕様にはマウスについての仕様は定義されておりません。
C言語とC++言語は
PCやスマートフォン,PlayStation4,Nintendo3DS,TV,冷蔵庫等(マウスやキーボードなど入力デバイスを持たない製品)に依存した仕様を持ちません。
ですので、C言語とC++言語だけではマウスの入力を検知することはできません。

質問者さんは現在C言語あるいはC++言語を勉強中ということととお見受けします。
開発している環境(OS)によって、マウス入力を制御するアプリの制作は一概には答えられませんが、

WindowsOSでしたらば、Win32APIを学ばれる事をお勧めします。
開発方法につきましては、検索してください。
少し古いですが下記URLでも十分学ぶことができると思います。
http://www.kumei.ne.jp/c_lang/index_sdk.html

LinuxOSやMacOSについて私は開発したことがないので、お答えすることができません。

ほかの方もいくつか回答しておりますが、それ自体は正しいのと思うのですが、
この質問者への回答としては不適切に思いますので、私も回答をしてみようと思います。

C言語とC++言語の仕様にはマウスについての仕様は定義されておりません。
C言語とC++言語は
PCやスマートフォン,PlayStation4,Nintendo3DS,TV,冷蔵庫等(マウスやキーボードなど入力デバイスを持たない製品)に依存した仕様を持ちません。
ですので、C言語とC++言語だけではマウスの入力を検知することはできません。

質問者さんは現在C言語あるい...続きを読む

Q長所と短所

エントリーシートの質問に、長所と短所を答える欄がそれぞれあるんですが、
長所だけでなく短所の場合も、それを裏付けるような学生時代のエピソードなどを書くのでしょうか?
短所のエピソードを書くことで、マイナスイメージになるのではないかと心配です。
また、なるべくマイナスイメージにならない様な短所の書き方を教えてください。
アドバイスよろしくお願いします。

Aベストアンサー

#3です。

>長所・短所を交えて6行ほどで書かないといけないので、長所(短所)を裏付けるエピソード、そして短所を克服する為努力している点を両方書こうと思うと、うまくまとまりません。
その様な場合、後者の方を重視して書いた方がいいのでしょうか?


→6行もあれば、「長所(短所)を裏付けるエピソード、
 そして短所を克服する為努力している点を両方」
 書けます。

多分、無駄な文章が多いはず。
削ればいいのです。

一度、自分の書いた文章を添削してみて下さい。

例えば、私が#3で書いた例文・・・

『私の短所は、短気なところです。
就職活動中、忙しさのあまり、ついつい友人の
会話の中でも、短気になってしまい、友人に
嫌な思いをさせてしまったことがあります。
その後すぐ反省し、友人に謝りましたが、
友人からは「今大変なの知っているから、
大丈夫だよ」と優しい言葉をもらい、
友達のありがたさも知りました。
今は、短気を起こす前に、そのような気持ちに
なったら、気分転換をはかり、コントロールしています。』

これも

『私の短所は、短気です。就職活動中、友人との
会話の中で、友人に嫌な思いをさせてしまいました。
その後すぐ反省し、謝りましたが、友人からは
「大変だよね。大丈夫だよ」と優しい言葉をもらい、
 友達のありがたさも知りました。
今は、そのような気持ちになったら、気分転換をはかっています。』

これでも充分通じます。前は200字くらい。
後のは100字程度です。

文章は、主軸の単語さえ抑えておけば、
意味を失いません。

是非、書いて長くなった文章を削って下さい。

#3です。

>長所・短所を交えて6行ほどで書かないといけないので、長所(短所)を裏付けるエピソード、そして短所を克服する為努力している点を両方書こうと思うと、うまくまとまりません。
その様な場合、後者の方を重視して書いた方がいいのでしょうか?


→6行もあれば、「長所(短所)を裏付けるエピソード、
 そして短所を克服する為努力している点を両方」
 書けます。

多分、無駄な文章が多いはず。
削ればいいのです。

一度、自分の書いた文章を添削してみて下さい。

例えば、...続きを読む

QVisual C++ と Visual C++ Express Edition

の違いについて教えてください。
ExpressでもMDIを作成できるのでしょうか?

Aベストアンサー

「Express Edition」には、大雑把にリソースエディタとMFCが付いていません。あとインストーラ作成機能が無かったかな?細かな違いはだいぶありますけど。
WindowsAPIやC++/CLIを使う分には、ほぼ同等にプログラムを作る事ができます。
MDIももちろん作れますよ。

「猫でもわかるプログラミング」
http://www.kumei.ne.jp/c_lang/
のようにリソースエディタやクラスウィザードを使わない作り方をする分には、ほぼ差が無いと思います。


人気Q&Aランキング