以下是某遊戲公司的C++開發的部分筆試題,不分順序。
1、什麼是物件導向?物件導向的特徵是什嗎?請簡要敘述這些特徵。
2、用變數a給出下面的定義
a) 一個整型數(An integer)
b)一個指向整型數的指標( A pointer to an integer)
c)一個指向指標的的指標,它指向的指標是指向一個整型數( A pointer to a pointer to an intege)r
d)一個有10個整型數的數組( An array of 10 integers)
e) 一個有10個指標的數組,該指標是指向一個整型數的。(An array of 10 pointers to integers)
f) 一個指向有10個整型數數組的指標( A pointer to an array of 10 integers)
g) 一個指向函數的指標,該函數有一個整型參數並返回一個整型數(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一個有10個指標的數組,該指標指向一個函數,該函數有一個整型參數並返回一個整型數( An array of ten pointers to functions that take an integer argument and return an integer )
3、下列const的意義
const int a;
int const a;
const int *a;
int const *a;
int * const a;
const int * const a;
4、你瞭解設計模式嗎?總結一下設計模式的特徵。
5、用物件導向的觀點解釋玩家、物品、怪物、NPC、地圖觸發器、金錢的關係及管理方式。(大致是這麼回事)
6、“引用”是什嗎?“引用”有什麼要注意的特徵?“引用”和指標的區別是什嗎?
7、
#include <iostream>using namespace std;class B {public: B() { std::cout << "default constructor" << std::endl; } ~B() { std::cout << "destructed" << std::endl; } B (int a) : data(a) { std::cout << "construct by parameter " << data << std::endl; }private: int data;};B Play(B b) { return b;}
求下面main函數的輸出
int main(){ B a = Play(10); B b = Play(a); return 0;}
int main(){ B a = Play(5); B b = Play(10); return 0;}
8、已知strcpy函數的原型是char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字串,strSrc是源字串。
不調用C++/C的字串庫函數,請編寫函數 strcpy。
9、編寫一個宏MIN,返回兩個數的較小值。
10、比較C++的四種類型轉換符: static_cast, dynamic_cast, reinterpret_cast, const_cast。
11、在C++ 程式中調用被 C 編譯器編譯後的函數,為什麼要加 extern “C”聲明?
第4、5兩道是最後的壓軸題,這裡放在較前的地方。