C/C++扩展
文章平均质量分 69
笨蛋糕
当你的才华还不足以撑起你的野心时,你应该静下心去学习!
展开
-
C++对象模型解析
C++的额外成本C++较之C的最大区别,无疑在于面向对象。类相较于C的struct不仅只包含了数据,同时还包括了对于数据的操作。在语言层面上C++带来了很多面向对象的新特性,类、继承、多态等等。新特性使得C++更加强大,但同时却伴随着空间布局和存取时间的额外成本。作为一个以效率为目标的语言,C++对于面向对象的实现,其实不大,这些额外成本主要由 virtual引起,包括:virtu原创 2014-05-31 12:11:15 · 763 阅读 · 0 评论 -
malloc实现原理
malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。 动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分配,且原创 2014-08-06 10:19:36 · 479 阅读 · 0 评论 -
关键字static的详解
1、在C语言中,关键字static有原创 2014-07-27 10:24:24 · 551 阅读 · 0 评论 -
虚函数的实现机制
简单地说,虚函数s原创 2014-07-27 09:49:02 · 568 阅读 · 0 评论 -
标准C++的类型转换
一、 使用标准C++的类型转换符,主要有四种类型:static_cast、dynamic_cast、reinterdivt_cast、const_cast。1 static_cast用法:static_cast ( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子原创 2013-12-22 11:11:22 · 624 阅读 · 0 评论 -
常见库函数的实现
一、写在前面 继上一次发表了一片关于参加秋招的学弟学妹们如何准备找工作的博客之后,反响很大,顾在此整理一下,以便大家复习。好多源自july的这篇博客,也有很多是我自己整理的。希望大家能够一遍一遍的写,直到能够秒杀为止。二、stl模板函数 1、strcpy[cpp] view plaincopy原创 2014-07-04 23:56:21 · 570 阅读 · 0 评论 -
关键字const的详解
1、C++中const有什么作用?1)const用于定义常量:const定义de原创 2014-07-27 11:06:55 · 531 阅读 · 0 评论 -
面向对象的六大原则
要把软件做得非常灵活又要便于维护是一个很困难的事情。灵活的软件他的结构就复杂,维护起来就困难。有得必有失,关键就在于如何处理这两者,使得大于失。软件的设计开发应遵循以下六大原则: 1. OCP 全称:“Open-Closed Principle” 开放-封闭原则 说明:对扩展开放,对修改关闭。 优点:按照OCP原则设计出来的系统,降低了程序各部分之间的耦合性,其适应性、灵活性、稳定原创 2014-07-27 10:36:22 · 512 阅读 · 0 评论 -
MFC知识点整理
1、MFC包含哪几类程序?原创 2014-08-06 10:50:00 · 1339 阅读 · 0 评论 -
抽象类与接口的区别
1、抽象类就是将类似或相似的部分给抽取出来,这句话看上去很搞笑,其实它说出了抽象类的真理。你可能会说”我不是可以重写一个公共类,然后我实例化这个公共类,调用相同的方法就可以了”,这里是可以,实际上抽象类的工作也就是这个,不过他省去了你实例化的这个步骤,并且你还可以生载这个方法 抽象类特性:1. 非抽象子类必须完全实现这个抽象中所有的抽象方法2. 抽象类不能被实例化,它的意义在于原创 2014-05-28 11:11:30 · 499 阅读 · 0 评论 -
__cdecl __fastcall与 __stdcall
__cdecl __fastcall与 __stdcall 调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向原创 2015-01-13 17:23:18 · 433 阅读 · 0 评论 -
《软件工程》之开发访谈
《立项阶段》1、立项建议——产品构思提交给总工程师,撰写立项建议书。2、可行性分析——制定调研计划,生成立项可行性分析报告。3、立项评审——形成立项评审记录表。4、项目筹备——任命项目经理、同时定义QA、CCB等角色。《计划阶段》1、客户需求——由项目经理和开发主管来参与客户需求开发,形成用户需求访谈录,编写用户需求说明书,项目经理组织组织评审。2、项目估计——原创 2017-03-21 08:36:39 · 2714 阅读 · 0 评论 -
《软件调试》笔记
一、插装——开发人员编写的额外代码,来提高程序的可观察性和可控制性。二、发现bug的机会:(1)可调试的源代码(2)插装(3)宏定义(4)编译器标志(5)静态检查器(6)选择的库(7)链接器选项(8)代码插装工具(9)测试用例/输入数据(10)调试器:源代码、剖析、内存读取、操作系统调用跟踪器(如truss和strace)三、用户态调试器——查看调试目标状态原创 2017-03-16 09:04:19 · 1465 阅读 · 0 评论 -
程序设计的50条感想
1、敏捷开发——在一个高度协作的环境中,不断地使用反馈进行自我调整和完善2、阅读代码的频率越高越好3、使用单元测试4、迭代和增量式的学习5、跟踪技术变化——你不需要精通所有技术,但需要清楚知道行业的方向,从而规划你的项目和职业生涯6、CRCC即类—职责—协作—的设计方法7、不要在前期做大量的设计8、不需要开发你能下载到的东西9、防止提交破坏系统的代码——(1)在本地原创 2017-03-16 10:05:10 · 1094 阅读 · 0 评论 -
内存溢出和内存泄漏
1、内存溢出:是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致o原创 2014-07-28 11:55:34 · 452 阅读 · 0 评论 -
C++ 智能指针
一、智能指针的介绍就是具备指针功能同时提供安全内存回收的一个类。它是用一个对象来对指针进行建模,使之具有指针的特性,跟指针具有相同含义的 -> 和 * 操作.并且通过对象的构造函数(获取资源),析构资源(释放资源)来对资源进行管理,从而减少程序员对通过new操作获取到的对象的生命周期进行管理的负担。除了能够在适当的时间自动删除指向的对象外,他们的工作机制很像C++的原创 2013-12-14 09:26:18 · 689 阅读 · 0 评论 -
《软件工程》笔记
——软件工程是一门研究应用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程包括了管理、过程和技术三个方面,过程指软件的开发、维护过程及管理过程。涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等。目标:达到要求的软件功能。取得较好的软件性能。付出较低的开发成本。开发的软件易于移植。开发的软件易于维护,需要较低的维护费用。能按时完成开发原创 2017-03-17 09:08:19 · 1216 阅读 · 0 评论