torutkのブログ

ソフトウェア・エンジニアのブログ

C++プログラマとしてのスキルを測る質問

C++プログラマ採用試験で聞くとよい質問だそうです。

Part 1の10の質問をざっと日本語訳

  1. クラスとは何ですか?
  2. C言語の構造体とC++言語の構造体との違いは何ですか?
  3. constキーワードの意味はなんですか?#defineに比べてよい点は何ですか?
  4. private、public、protectedアクセス修飾子の違いを説明できますか?
  5. public継承とprivate継承について説明できますか?
  6. friendキーワードは役に立ちますか?
  7. class MyFancyClass {}; と定義したとき、コンパイラが自動生成するメソッドは何ですか?
  8. コンパイラに上述のメソッドを生成させないようにする方法は何ですか?
  9. コンストラクタの初期化子リストとは何ですか?
  10. コンストラクタ初期化子リストを使わないと実現できないことは何ですか?

Part 2の10の質問をざっと日本語訳

  1. virtual関数とは何ですか?
  2. virtualデストラクタとは何で、どのようなときに使いますか?
  3. Javaのinterfaceと同様の概念をC++でどう実装しますか?
  4. ポインタと参照の違いを言えますか?
  5. どのようなときに参照を使いますか?
  6. newとmallocの違いを言えますか?
  7. new演算子と、operator newの違いは何ですか?
  8. 配置new (placement new)とは何ですか?
  9. 「仮想(virtual)コンストラクタ」とは何ですか?
  10. RAIIとは何ですか?

感想

C++プログラミングの基礎知識*1を問う良問かも。さっそく使ってみようかな。

  • しかし、この質問を出せる人は少ないかも。質問を出す以上は答えを知ってないといけないから。

*1:ここで「基礎」とは「入門」の意味ではなく、建築での基礎工事の表現での基礎に近い意味