あなたが C++ の面接官だったら、どんな質問をしますか?

まず、C 言語の基礎の波を調べます。

C言語

  • constの機能とは何ですか? const についての理解を教えてください。

  • char*、const char *、char* const、const char* constの違いについて説明してください。

  • ポインタ const と const ポインタの違いは何ですか?

  • 静的の役割は何ですか?静的はいつ使用されますか?

  • グローバル変数とローカル変数の違いは何ですか?

  • マクロ定義の役割は何ですか?

  • メモリアライメントの概念? なぜメモリの調整が行われるのでしょうか?

  • インライン関数の特徴は何ですか? その長所と短所は何ですか?

  • ワイルドポインタを回避するにはどうすればよいでしょうか?

  • 構造の長さを計算するにはどうすればよいですか?

  • sizeof と strlen はどう違いますか?

  • 条件変数についてご存知ですか?条件変数をロックと組み合わせて使用​​する必要があるのはなぜですか?

  • C を使用して C++ のオブジェクト指向機能 (カプセル化、継承、ポリモーフィズム) を実装する方法

  • memcpy をより効率的にするにはどうすれば実装できますか?

  • typedefとdefineの違いは何ですか?

  • extern の役割、extern C の役割は何ですか?

以下は C++ の基本知識に関する面接の質問です。

  • C言語とC++の違いは何ですか?

  • 構造体とクラスの違いは何ですか?

  • extern "C" は何をするのでしょうか?

  • RAⅡって分かりますか?導入?RAII は C++ の非常に重要な機能です。

  • ポリモーフィズムについての理解について話してください。実行時ポリモーフィズムの実現原理は何ですか?

  • 仮想関数が有効な場合、すべての関数を仮想化しないのはなぜでしょうか。

  • コンストラクターは仮想にできますか? デストラクターは仮想化できますか?

  • 基本クラスのデストラクターは仮想関数を呼び出すことができますか? 基本クラスのコンストラクターは仮想関数を呼び出すことができますか?

  • 純粋仮想関数を使用するにはどのようなシナリオが必要ですか? 純粋仮想関数の役割は何ですか?

  • ポインタと参照の違いは何ですか? いつポインターを使用し、いつ参照を使用するのでしょうか?

  • new とmallocはどう違いますか?

  • malloc メモリは削除で解放できますか?

  • Malloc は 20 バイトのメモリを備えていますが、なぜ free に 20 バイトを渡す必要がないのですか。メモリ リークは発生しませんか?

  • new[] と delete[] はペアで使用する必要がありますか? なぜ?

  • クラスの人数はどのように計算されますか?

  • volatile キーワードの役割

  • スレッドプールを実装するにはどうすればよいですか? 基本的な考え方だけ話してください!

  • さまざまな必須型変換の原理と使用法を理解していますか? 教えて?

面接では基本的にC++11の新機能について聞かれますが、実際にC++14やC++17を使っている人も多いです。

C++11 の新機能についてどれくらい知っていますか? 紹介してもいいですか?

  • auto と decltype を理解していますか?

  • 左辺値と右辺値についての理解を話してください。左辺値参照と右辺値参照を理解していますか?

  • 移動セマンティクスと完全転送を理解していますか?

  • enumと enum クラスの違いは何ですか?

  • リストの初期化についてご存知ですか?

  • C++11 のスマート ポインターについてどのくらい知っていますか? スマート ポインターを自分で実装できますか?

  • 普段、関数、バインド、ラムダをどのようなシナリオで使用しますか?

  • C++11 のミューテックスと RAII ロックについてご存知ですか?

  • メモリリークはどのような状況で発生しますか? メモリリークをデバッグするにはどうすればよいですか?

  • unique_ptr はどのように所有権を変換しますか?

  • オブジェクト指向についての理解について話す

  • どのようなシナリオで継承を使用する必要がありますか?また、どのようなシナリオで合成を使用する必要がありますか?

STLシリーズ

  • 配列を直接使用するのと、C++ で std::array を使用する方が良いでしょうか? std::array はどのように実装されますか?

  • std::vector の最大の特徴は何ですか? 内部的にはどのように実装されているのでしょうか? サイズ変更と予約の違いは何ですか? クリアはどのように実装されますか?

  • deque の基礎となるデータ構造は何ですか? 内部的にはどのように実装されているのでしょうか?

  • マップとunordered_mapの違いは何ですか? どのようなシナリオで使用されますか?

  • リストの使用シナリオは何ですか? std::find はリストに対応するイテレータを渡すことができますか?

  • 文字列の一般的な機能

デザイン パターン。23 のデザイン パターンを 1 つずつリストすることは必須ではありません。一般的なものをいくつか挙げてください。

  • 空腹で怠け者向けにスレッドセーフなシングルトン パターンを作成する

  • プロキシ モードの関係と利点について説明する

  • ファクトリーパターンのコンセプトと利点を説明する

  • コンストラクター パターンの概念を説明する

オペレーティング·システム

  • プロセスとスレッドの違いは?

  • オペレーティング システムはプロセスをどのように管理しますか?

  • オペレーティング システムはどのようにしてプロセス ブロッキングを実現するのでしょうか?

  • プロセス間の通信方法は何ですか?

  • スレッドはどのように実装されますか?

  • どのリソースがプライベートであり、スレッド間で共有されますか?

  • 一般的なアプリケーションのメモリ空間におけるヒープとスタックの違いは何ですか?

  • プロセス仮想空間はどのように配置されますか?

  • 仮想メモリは物理メモリにどのようにマッピングされますか? ページングメモリ管理についてご存知ですか?

  • コンテキスト スイッチングとは何ですか?また、オペレーティング システムはどのようにコンテキスト スイッチングを実行しますか?

  • ビッグエンディアンとリトルエンディアンとは何ですか? エンディアンを変換するにはどうすればよいですか?

  • デッドロックが発生するために必要な条件は何ですか? デッドロックを回避するにはどうすればよいでしょうか?

  • シグナルとセマフォの違いは何ですか?

  • ロックのパフォーマンスのオーバーヘッド、ロックの実装原理は?

コンパイルの原則、コンパイルとリンクの知識は依然として非常に重要であり、コンパイルとリンク中のエラーを解決することも C++ プログラマーの基本的な能力です。

  • gcc hello.c コマンドラインの具体的な実行プロセスは、内部的には具体的に何を行うのでしょうか?

  • プログラムは main 関数から実行されますか?

  • 関数がコンパイルされた出力であることを確認するにはどうすればよいですか?

もう終わりにしましょう!

C++ の学習については、こちらもご覧ください。

【C++】実戦入門:インテリジェントデートとデートシステム

おすすめ

転載: blog.csdn.net/xiangxin1030/article/details/129017694