91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 392KB
    文件類型: .doc
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-27
  • 語言: C/C++
  • 標簽: 華為??C++??筆試題??

資源簡介

1. 虛函數是可以[New一個對象的時候要根據虛函數的函數體來填虛表;而內聯函數沒有函數體,只是在預編譯階段展開]內聯的,這樣就可以減少函數調用的開銷,提高效率(錯誤) 2. 一個類里可以同時存在[同一個類里無論什么函數都不能函數名和參數完全一樣]參數和函數名都相同的虛函數與靜態函數(錯誤) 3. 父類的析構函數是非虛的,但是子類的析構函數是虛的,delete子類指針(指向該子類對象)[特殊情況,參見題5],會調用父類的析構函數(正確)//任何情況下刪除子類都會調用到父類的析構函數 4.對于下面的類CA,sizeof(CA) = _B_: A. 4 B. 8 C. 12 D. 16 class CA { public: CA(); virtual ~CA(); //因為有虛函數,所以會有4個字節的虛表指針 private: int m_iTime; //成員變量4個字節 public: int GetTime(); int SetTime(int iTime); }; 5.下面這段程序,打印結果是_A_: A. 1 B. 2 C. 3 D. 以上都不對 int g_iCount = 0; class CParent { public: CParent() {} ~CParent() {g_iCount += 1;} }; class CSon : public CParent { public: CSon() {} ~CSon() {g_iCount += 2;} }; main() { CParent* p = new CSon(); delete p[由于p被聲明成父類指針,并且父類和子類的析構函數都非虛,因此delete操作只能根據p指針聲明的類型來調用父類的析構函數]; std::cout << g_iCount << std::endl; } 6.請問下面這段程序的輸出結果是_A_: A. 2,1, B. 2,2, C. 1,1, D. 1,2, class CParent { public: CParent() {} virtual ~CParent() {} public: virtual void Print() { std::cout << "1,"; }; }; class CSon : public CParent { public: CSon() {}; virtual ~CSon() {}; public: void Print() { std::cout << "2,"; }; }; void Test1(CParent& oParent[這里是引用了一個外部對象,該對象的虛表不會發生變化]) {oParent.Print();} void Test2(CParent oParent[這里會在棧空間內重新構造一個CParent類的對象,如果傳入實參的類型與CParent不同則虛表會發生變化]) {oParent.Print();} main() { CSon * p = new CSon(); Test1(*p); //這里只是一個引用 Test2(*p); //這里會在棧空間重新構造Cparent類對象 delete p; } 7.請問下面這段程序的輸出結果是_D_: A. 2,1, B. 2,2, C. 1,1, D. 1,2, class CParent { public: CParent() {} virtual ~CParent() {} public: void Print(){ std::cout << "1," ; }; }; class CSon : public CParent { public: CSon() {} virtual ~CSon() {} public: void Print(){ std::cout <Print(); pSon->Print();[由于父類和子類的Print函數都非虛,所以根據指針類型決定調用關系] } 8.請問下面這段程序的輸出結果是_C_: A. 2,1, B. 2,2, C. 1,2, D. 1,1, class CP

資源截圖

代碼片段和文件信息

評論

共有 條評論