インタビューでCとC ++を混在させることはできますか?[閉まっている]


8

インタビューでいくつかのコードを書き留めるように依頼された場合、C ++に完全に固執する必要がありますか、それとも、2つを「混合」して簡単なコードを書くことを頭に入れても問題ありませんか?

説明します。「スタック」データ型を作成するように求められた場合、C ++クラスが最適ですが、一部の文字列を解析する必要がある場合、strtok / sscanfはSTLよりもはるかに簡単です。一方、汎用のコンテナーが必要な場合は、STLとテンプレートが適しています。

すべてはCまたはC ++で実行できますが、インタビューではすべてをコーディングしたり、すべての標準/ STL関数を覚えたりすることはできません。許容できるトレードオフとは何ですか?


1
ほとんどのC ++プログラマーは、純粋にCを混ぜてはいけないという正当な理由がない限り、それを混ぜてはいけないと言っています。
リグ

2
「文字列分割を処理するためのSTL関数を思い出せない」というのは素晴らしいことではないでしょうか。
John Smith

14
私がインタビュアーだったとしたら、あなたがこの質問をするのに十分なほど知っていることは、私の本の前向きな兆候でしょう。彼らに何が欲しいか尋ねてください。
GrandmasterB 2012

2
sprintfとFILEは、C ++の世界で時々私の生活を楽にすることができます
Thomas Eding

私がインタビュアーだったとしたら、誰かがこの関数にどの関数を呼び出すかを言ってこの質問に答えても、感心することはありません。
James

回答:


13

C ++はCをネイティブでサポートし、サブセットのみをサポートしますが、トピックがC ++である場合Cプログラミング言語が含まれていて、これは意見ではないので、専門家にはそれについての議論はありません。環境。


同意した。さらに、CはC ++の一部なので、利益を得るためにそれを使用しないのはなぜですか?私の意見では、純粋に言語の一部に固執し、他の部分に触れないことは、言語の適切な使用法ではありません。
Pijusn 2012

17

特に明記しない限り、ほとんどのプログラミングの質問では、特定の質問に答えるときに好きな言語を使用できます。混乱を避けるために特定の質問に答えるために使用している言語を説明しそれを使用している理由を説明することができます。

面接担当者がこれで問題ないかどうかわからない場合は、質問してください-異なる言語を使用して異なる質問に答えられるかどうか尋ねることは絶対に許容されます(ほとんどの紙の回答では、疑似コードは許容範囲を超えます)。


4
はい、それは私が考えていたものです:疑似コード。私は心の中にナレッジベースを持っていません。構文やAPIの宣言(変更される可能性があります)ではなく、技術やものの使い方を覚える傾向があります。私がそれを疑似コード化することができ、言語で「まともな」量のプログラミング経験があれば、それが何であるかは問題ではありません。コード化できると思います。
ジョンスミス

2
候補者がC間を簡単に切り替えることができた場合、それは私の本の前向きな兆候でしょう。C ++ | C ++とSTLは、特定のパスを選択した理由を説明できます。

6
@JohnPell-私の経験では、原則を理解し、それらをいつどのように適用するかを理解することは、常に深い言語知識よりも優先されます。
2012

10

両方の使い方を知っている場合は、面接担当者に何を好むか尋ねてください。

彼の答えに応じて、あなたは発見することができます:

  1. CとC ++の違いを本当に知っているなら
  2. C ++標準ライブラリについて知っている場合。
  3. それが彼にとって重要であるなら。

この質問に対する一般的な答えはありません。採用担当者の仕事と目的に依存しすぎています。もし彼があなたに言語知識を見せて欲しいと望むなら、彼は具体的になるでしょう。彼があなたに問題解決のスキルとコミュニケーションのスキルを見せて欲しいのなら、彼は本当に気にしないでしょう。


8

面接担当者がCまたはC ++でコーディングすることを明示的に要求しない限り、私は面接に適切なものを使用します。

私にとって、私の候補者が2つを混合していた場合、私は彼の戦略や2つの言語を混合する理由にもっと興味があります。チームにソリューションを提供し、そのソリューションを正当化できる人がいることは非常に貴重です。


1
+1、正当化が鍵です。これは、一般に(もちろんプログラミングスキルを除いて)優れた開発者になるための鍵だと思います。
K.Steff 2012

1

インタビューでいくつかのコードを書き留めるように依頼された場合、C ++に完全に固執する必要がありますか、それとも、2つを「混合」して簡単なコードを書くことを頭に入れても問題ありませんか?

それはあなたがどのような仕事に応募しているか、そして彼らがあなたに使うことを期待している言語に完全に依存しています。一般に、C ++を作成している場合は、できる限りC ++を使用することをお勧めします。しかし、私はすべてのC ++プログラマーが少なくとも少しはCを知っていることを期待します(逆も同様です)。

説明します。「スタック」データ型を作成するように求められた場合、C ++クラスが最適ですが、一部の文字列を解析する必要がある場合、strtok / sscanfはSTLよりもはるかに簡単です。一方、汎用のコンテナーが必要な場合は、STLとテンプレートが適しています。

面接中に実際のデータ型全体を書き込むことを期待されている場合は、警戒する必要があります。彼らが技術的な詳細についてあなたに尋ねるのは良いことですが、彼らが面接中にあなたがプログラムを書くのに何時間も費やすと予想するなら、それはおそらく雇用主について何か悪いことを言っています。

scanf()を使用する場合、CまたはC ++のどちらを使用しているかに関係なく、大きな間違いを犯した可能性があります。インタビュアーに、ただ素早く汚いものを書いているだけで、本番用コードではscanfを使用しないことを説明する方がよいでしょう。さまざまなCライブラリ関数には多くの落とし穴があります。

インタビュアーは、CおよびC ++の標準ライブラリのすべての関数を覚えておくと期待するべきではありませんが、露骨に危険な関数を知ることを期待するべきです。gets()、getchar()、scanf()、setjmp()など。


完全に同意します。例を示すだけで、少なくともscanf_sを使用します。できれば、製品コードではこれを完全に回避します
John Smith、

0

C ++で短い代入を実際に行うように明示的に要求された場合、実際にC ++を使用し、Cを混ぜないことが最も重要だと思います。モダンCは、モダンC ++のサブセットではありません。この2つを混在させると、クリーンでモダンなC ++がどのようなものであるかをよく理解していないことになるだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.