以下是某游戏公司的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两道是最后的压轴题,这里放在较前的地方。