2024年春《高级程序设计》期末考试题回忆
笔者第一次考试破防,故记录题目如下,希冀后人能够免除高程的烦恼
概念解释(20pt)
- 数据抽象与封装和过程抽象与封装的区别是什么?
- C++中代码复用的例子?
- 虚函数是什么?有什么作用?有什么缺点?
- C++中创建对象的方式有哪些?他们有什么区别?
改错和读程序写结果
具体程序难以回忆,关注点:
- private/protected的访问控制
- 常量对象只能调用常成员函数
- “=”赋值号中对额外内存空间的消除/新建
- 结构化异常处理,匹配规则
- delete[] 和 delete
- 引用和指针的多态
...
补全程序
- Allocator (内存池) 使用泛型
// 核心代码
template<class T, size_t BLOCK_SIZE>
class Allocator{
public:
T* allocate();
void deallocate(void* ptr);
~Allocator();
private:
struct UnusedSpace{
T place_holder;
UnusedSpace* next;
}free_ptr;
}
考察:给出allocate,补全deallocate和析构函数,要求能够释放内存时释放所有空间,deallocate时能够释放当前内存到内存池中
- sortedList 有序数列: 先实现了一个抽象类,然后用链表具体实现了各个方法,要求实现:
- 链表的深拷贝
- 链表的释放空间
- 有序数列的插入(仅要求实现链表的插入节点)
- 有序数列的随机存取
- 有序数列的lower_bound(仅要求实现while循环条件)
- 有序数列的删除(仅要求实现链表删除节点)
版权声明:
作者:carott
链接:https://blog.hellholestudios.top/archives/1417
来源:Hell Hole Studios Blog
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
文章目录
关闭
共有 0 条评论