
C++
文章平均质量分 81
lotluck
我会成为你的眼睛,为你看清未来
展开
-
浅谈C++中的那些内存泄露
虽然学过C语言,但是C++里面的一些基础还是不太懂,还需要再掌握。老范也开始要讲C++设计模式了,必须快点看了,不然就要白花窝滴钱了。 对于内存泄露,我的个人理解就是程序在运行过程中,自己开辟了空间,用完这块空间后却没有释放。今晚上我就犯了这样的低级错误,导致程序没有运行出来,还是先看代码:#include /* run this program using the conso原创 2014-11-06 00:28:58 · 4849 阅读 · 10 评论 -
段错误bug的调试
我们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难免会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个内存访问越界的错误谈谈如何快速定位这些"段错误"的语句。下面将就以下的一个存在段错误的程序介绍几种调试方法:述作为一个熟练的C/C++程序员,以上代码的bug应该是很清楚的,因为它尝试操作地址为0的内存区域,而这个内存区域通转载 2015-01-21 01:17:21 · 1277 阅读 · 0 评论 -
采坑memset初始化vector的变量---vector iterators incompatible
和别人合作一起写一个斗地主,我负责拆牌这一块,每次需要返回最优的牌型。因为我习惯了变量初始化用memset,vector的变量也意外的用了memset。结果尼玛的调试了好长时间,才知道memset初始化vector变量会导致向量丢失,不能正常的遍历,但是可以正常的push_back。 编译器报错是:“vector iterators incompatible”,有毛用。 加代码调试编译报错的地方让人根本摸不着头脑,这一块怎么会错呢? 纠结了好长时间。其实下面这一块是对的。原创 2017-10-09 16:05:53 · 9658 阅读 · 0 评论 -
简单工厂模式 工厂模式 抽象工厂模式
其实这个三个C++的设计模式已经学习很长时间了,今晚才想起来要写这三个设计模式,为什么要用C++中的设计模式呢?for example,你已经会开车了,正着开,倒着开,转弯,这些都是开车基本的,但是你并没有很高的车技,并不会炫酷。漂移,就好像C++中的设计模式一样,在你学好C++的基础上,娴熟的应用出的新技能,能让你的车开的更好。 为什么要用简单工厂模式,记得上一次,我虽然敲完了代码,但是当别人突然问一句,你为什么要用简单工厂模式,我突然就愣住了,代码很简单,一看就懂了。重要的还是思想。专门定义一个类来负责原创 2015-05-10 20:35:54 · 6485 阅读 · 0 评论 -
webbench学习源码
深入学习一个语言或者想提升自己的编程水平,最好的办法就是学习优秀的源代码,一个意外的机会,接触到了webbench的源码,里面认认真真的看下去真是get到不少东西。webbench就是一个用纯C语言实现压测工具,思路很简单,主进程创建出多个子进程,让多个子进程去访问url,记录子进程访问该网页的情况,主进程和子进程之间采用管道通信,最后主进程汇总子进程的数据结果,就是这么简单。 在webbench源码中,有很多技巧值得学习,如何组织代码让代码精剪一目了然,如何巧妙的使用全局变量,而且大量的字符串处理函数st原创 2015-01-26 16:14:31 · 958 阅读 · 0 评论 -
C++中STL的一些代码
这次把C++中的STL的一些东西练习一下下,STL全称为 Standard Template Library ,也就是标准模板库, 要使用STL,要了解以下几个基本概念: 容器:可以把它理解为存放数据的地方,常用的一些容器有 链表(list) 栈(stack) 动态数组 (vector) 双端队列(deque) 队列(queue) 映射(map) 游标(it原创 2015-05-09 09:58:14 · 2084 阅读 · 0 评论 -
c++自学笔记第五次
代码重用是现代程序设计追求的一个重要目标,模板有效地软件重用。模板和异常处理都是c++的重要机制。利用模板可以大大缩短了程序的长度。#includeusing namespace std;templateclass A{T x;T y; public:A(T a,T b){x=a;y=b;}void display(){原创 2015-02-19 13:16:18 · 832 阅读 · 0 评论 -
c++自学笔记第四次
数据共享常用的方法全局变量有很大的局限性而且破坏了封装。静态成员作为类的一种数据成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不回破坏信息隐蔽的原则,保证了程序的安全性。静态成员是属于类的,如果类中定义了静态成员,那么每个对象都可以操作它。#include using namespace std; class CK{double cunkuan;原创 2015-02-19 13:14:42 · 1054 阅读 · 0 评论 -
ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。2、析取器(>>)转载 2017-12-14 16:01:10 · 380 阅读 · 0 评论