c++笔试
执迷的信徒
I believe I will become a true programmer,not a coder!
展开
-
一道c++笔试题
求输出结果#include #include using namespace std;class A{public: ~A() { cout }};class B : public A{public: ~B() { cout }};int main(){ A *pA=new B; B *pB=new B; delete pA; delete pB; return EXIT_SUCCESS;}结果运行截图:原创 2010-10-13 23:42:00 · 881 阅读 · 0 评论 -
阿里巴巴一道笔试题
<br />#include <iostream><br />#include <stdio.h><br />using namespace std;<br />struct A<br />{<br /> A()<br /> {<br /> cout << "A()" << endl;<br /> }<br /> ~A()<br /> {<br /> cout << "~A()" << endl;<br /> }<br />};<br />int main()<br />{<br /> A *pA=ne原创 2010-11-03 13:43:00 · 841 阅读 · 0 评论 -
有虚析构函数,没有虚构造函数
<br />“构造函数不能是虚的,因为还没有vtable”(引用自csdn)<br />“虚构造函数不是指在构造函数前加virtual,这样编译器不会通过的。因为构造函数的的绑定总是静态绑定的。不可能为虚函数,不仅构造函数不能是虚拟的,且构造函数中调用其它虚的成员函数也不能实现多态,简而言之就是构造函数中不能调用虚函数,而所谓的虚拟构造函数就是为了解决这个问题的一个解决方案,她采用了一种所谓信封/信纸的方法实现。具体的可以参考C++编程思想这本书中的附录,里面有详细地解释。 <br /><br />另外,在原创 2010-11-03 14:05:00 · 1096 阅读 · 0 评论 -
两道c++面试题
题目一:以下程序输出结果#include using namespace std;static int add(int &a,int &b){return a+b;}int main(){int a(10),b(6);cout retu原创 2011-08-12 14:29:04 · 2172 阅读 · 3 评论 -
探索C++的秘密之详解extern "C"
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cpl转载 2011-08-16 18:55:49 · 640 阅读 · 0 评论 -
虚表结构与虚继承内存对象模型
很好的一篇关于特定编译器的对象模型介绍,恰到好处,重新排版,原文地址:http://www.cnblogs.com/qlee/archive/2011/09/02/2163504.html 最近看了下Inside C++里面讲的对虚继承层次的对象的内存布局,发现在不同编译器实现有所区别。因此,自己动手探索了一下。结果如下:首先,说说GCC的编译器.它实现比较简单转载 2012-09-04 16:57:17 · 1073 阅读 · 0 评论 -
new和malloc
(收集整理from web)1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够转载 2014-07-16 14:18:44 · 942 阅读 · 0 评论