1. 程式人生 > 程式設計 >C++ 面試考點總結(未完待續)

C++ 面試考點總結(未完待續)

C++ 面試準備

C++語言基礎知識

  • sizeof作用:

    • sizeof空型別,返回值為1。 原因:宣告空型別時,必須在記憶體中佔一定的空間,否則無法使用這些例項。佔用多少記憶體,由編譯器決定,Visual Studio中,空型別的例項佔1位元組的空間。
    • 建構函式和解構函式的sizof均為1 原因無返回值,相當於是空型別
    • 其餘函式的sizeof 根據的是它的返回值
    • 虛擬函式:相當於指向虛擬函式表的指標,32位的話 ,一個指標佔4位元組,64位的話,指標佔8位元組。
  • 賦值運運算元函式:

  • tip:運運算元過載:即實現運運算元多型的一種方法,修改傳統運運算元的方式。

    • 格式:

      return_val operator
      op(argument -list)
      複製程式碼

      符號含義:

      • return_val: 返回值,可選,例如過載+ 一般都有返回值, 過載=號 可就沒返回值。
      • operator: 過載符號:預設
      • op: 需要過載的符號例如:+ - * /
      • argument-list :過載的引數 例如int+int 那麼過載的引數就是int
    • 例項:

      標頭檔案

      #include "stdafx.h"
      
      class People
      {
      public:
      	//建構函式和解構函式
      	People();
      	~People();
      
      public:
      	char walk();
      	float getCount();
      	People operator
      +(const People&op_People);//過載加號運運算元 }; 複製程式碼

      可以看出,標頭檔案中,定義了一個過載+號符號的運運算元過載函式

      接下來是實現:

      // SizeofDemo.cpp : 定義控制檯應用程式的入口點。
      //
      
      #include "stdafx.h"
      #include "SizeofDemo.h"
      
      using namespace std;
      
      People::People()
      {
      	cout << "This is a people!" << endl;
      }
      
      People::~People()
      {
      
      }
      
      char People::walk()
      {
      	cout
      << "sss"<<endl; return 0; } People People::operator+(const People&op_People) { cout << "過載成功" << endl; People mm; mm = op_People; return mm; } float People::getCount() { return 22.6; } int _tmain(int argc,_TCHAR* argv[]) { People * p_People = new People(); cout << sizeof(p_People->walk()) << endl; delete p_People; People cir_dd; People dd; People cir = cir_dd +dd; //測試過載 system("pause"); return 0; } 複製程式碼

      執行結果:

可以看出 過載成功,實現了+號的多型。