C++常见笔试题
来源:互联网 发布:曾舜晞粤读软件 编辑:程序博客网 时间:2024/06/06 04:05
Q1. 下面程序的输出结果是?
class A{ public: A(){ cout << "A()" << endl; } ~A(){ cout << "~A()" << endl; } virtual void fun(){ cout << "A:fun()" << endl; }};class B: public A{ public: B(){ cout << "B()" << endl; } ~B(){ cout << "~B()" << endl; } virtual void fun(){ cout << "B:fun()" << endl; }};class C: public B{ public: C(){ cout << "C()" << endl; } ~C(){ cout << "~C()" << endl; }private: virtual void fun(){ cout << "C:fun()" << endl; }};int main(){ B b = B(); B *c = new C(); c->fun(); delete c;}A1.参考答案:
A()B()A()B()C()C:fun()~B()~A()~B()~A()
Q2:设计一个只能在堆内存上实例化的类和一个只能在栈内存上实例化的类,否则出现编译错误。
A2:不能在栈上实例化,而只能在堆上实例化,可以将析构函数私有化,防止自动调用析构函数,必须手动调用;
class CHeapOnly{public: CHeapOnly() { cout << "Constructor of CHeapOnly!" << endl; } void Destroy() const { delete this; }private: ~CHeapOnly() { cout << "Destructor of CHeapOnly!" << endl; }};只能在栈内存上实例化,不能在堆内存上实例化,将new和delete操作符私有化。
class CStackOnly{public: CStackOnly() { cout << "Constructor of CStackOnly!" << endl; } ~CStackOnly() { cout << "Destrucotr of CStackOnly!" << endl; }private: void* operator new(size_t size) { } void operator delete(void * ptr) { }};
0 0
- 【C语言】[笔试题]:常见笔试题
- c语言常见笔试题总结
- 一些常见的c/c++笔试题
- c语言常见笔试题总结
- 嵌入式软件常见的笔试题(c)
- 嵌入式软件常见的笔试题(c)
- 常见的C语言笔试题
- 常见的C语言笔试题1
- C常见笔试题(一)
- C常见笔试题(二)
- 嵌入式C常见笔试题:字符串
- 常见的Objective-C笔试题
- C笔试常见考点
- 笔试题汇集之常见算法篇(C/C++)
- 常见的笔试题--C/C++(持续更新)
- 笔试题汇集之常见算法篇(C/C++)
- c语言常见笔试题目
- 笔试_常见笔试题
- 【趋势科技实习录】UI添加滚动条
- CKEditor实现图片上传
- mysql 高性能的索引
- 上传头像功能
- 模拟日历计算 poj1008
- C++常见笔试题
- jquery实现加载更多
- nginx+redis+lua 共享内存
- Exception in thread "http-bio-8080-exec-2" java.lang.OutOfMemoryError: PermGen space
- eclipse使用笔记(一):eclipse老是提示loading description for的解决办法
- android studio appcompat-v7:22.0.0包与support-v4:22.0.0包问题
- [iOS]UITableViewController完成收回键盘操作
- nginx状态监控
- Myeclipse处理引进别人代码中文乱码