摘要: C++析构前言析构函数在什么时候会自动被调用,在什么时候需要手动来调用,真不好意思说偶学过C++…今日特此拨乱反正。C++析构误解正文对象在构造的时候系统会分配内存资源,对一些数据成员进行初始化或者赋值;一个良好的class需要有资源回收的机制,而这一操作便落在了析构函数的头上,析构函数来负责类内的资源的free。来看一段代码:class myclass{ public: myclass() { cout #include #include #include using namespace std;class myclass{ p... 阅读全文
posted @ 2014-03-06 21:06 Mr. Ant 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 虚函数是动态多态性的基础,其调用的方式是动态连篇(简单解释为只有在程序运行时才决定调用的是基类还是基类的派生类,系统会根据指针指向的对象来决定要调用的函数)非虚函数与其相反,是静态连篇(简单解释为在编译时期就已经决定了要调用的函数)class Shape{ public: Shape(){}; void draw() { cout draw(); s=new Circle(); s->draw(); return 0;}我主程序中的意思是要画方形和画圆形,可执行的结果都是画图形(叫你两儿子出来,怎么出来的都是你啊,扯... 阅读全文
posted @ 2014-03-06 20:43 Mr. Ant 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 一:静态数据成员:类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:1、静态数据成员的定义。静态数据成员实际是类域中的全局变量,其定义方式与全局变量相同。例如:class base{ private: static const int x;};const int base::x=10; //初始化时不受private和protected访问限制注意:不要试图在头文件中定义(初始化)静态数据成员。2、静态数据成员被类的所有... 阅读全文
posted @ 2014-03-06 19:59 Mr. Ant 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 1、sizeof是运算符,而strlen是函数。2、sizeof操作符的运算结果为size_t,他在头文件中的typedef为unsigned int。该类型保证能容纳所操作对象的最大字节大小。3、sizeof可以用类型做参数,而strlen只能用char*做参数,且必须是以‘\0’结尾。4、数组做sizeof参数不退化,而做strlen就退化成指针。5、大部分编译程序在编译的时候就把sizeof处理过了,这就是sizeof(x)可以用来作为数组空间大小的原因。char str[20]=“0123456789”;a=strlen(str); // a=10,运行时确定b=sizeof(st.. 阅读全文
posted @ 2014-03-06 15:37 Mr. Ant 阅读(2094) 评论(0) 推荐(0) 编辑
摘要: 基础篇:操作系统、计算机网络、设计模式一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区别。8. 内存池、进程池、线程池。(c++程序员必须掌握)9. 死锁的概念,导致死锁的原因.10. 导致死锁的四个必要条件。11. 处理死锁的四个方式。12. 预防死锁的方法、避免死锁的方法。13. 进程调度算法。(周转时间 =程序结束时间 -- 开始服务时间、带 阅读全文
posted @ 2014-03-06 14:59 Mr. Ant 阅读(404) 评论(0) 推荐(1) 编辑