c/c++
invisible_sky
这个作者很懒,什么都没留下…
展开
-
常量指针和指针常量
引言:第一次写博文,那就写一下我在学习c++时常会疑惑的一点东西,那就是常量指针和指针常量。 一.定义格式:1.指向常量的指针(常量指针): const 类型名 * 指针变量名;类型名 const * 指针变量名; 2.常指针(指针常量): 类型名 * const 指针名; 假如:"const"== 常量 "*"== 指针,那么我们就可以这原创 2016-03-17 15:03:04 · 245 阅读 · 0 评论 -
继承、虚函数的应用模式:事件注册与调度机制
基于事件注册、触发调用的机制实现具有可扩展的c++程序。 在之前曾经看到过的一个程序,看到了这种基于事件注册,然后触发的机制,所以特别想细细的分析一下,然后总结一个demo,分享给需要学习虚函数、继承的同学。 在介绍之前,想问一下大家,或者对c++有一点编写经验的同学,有没有感觉自己写的程序很low,很没有结构化,而且可拓展性有点差的感觉?下面开始介绍这种机制,非喜...原创 2018-12-14 10:49:04 · 284 阅读 · 0 评论 -
c++ 树递归、非递归前、中、后序遍历及层次遍历
// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>#include <stack>#include <queue>using namespace std;struct Bitre...原创 2018-06-26 16:10:12 · 4452 阅读 · 0 评论 -
c++内存泄露(三):定位和解决内存泄露
如果编写的c++程序出现内存泄露了,不要慌忙,你要相信任何错误都是人为造成的,只要是人为的,你一定能找到错误所在,只不过是时间的问题而已。在面对内存泄露,如果程序不是特别长的话,你可以使用人工校验,着重查看new和delete的匹配调用。如果经过一番折腾还未确定程序的错误所在,首先应该明白程序在不停地循环调用的是那部分程序,然后对这部分程序做特殊的处理,逐行验证,然后确定错误所在。如果还是原创 2017-10-11 17:42:33 · 8928 阅读 · 0 评论 -
c++内存泄露(二):使用性能监视器进行内存泄露的确认
对于服务器程序,在不停的运作中,如何去测试是否存在内存泄露,如果你的开发环境是在windows下,那么我们就可以使用windows自带的性能监视器来观察程序的性能。使用此例子:Test.cint main(){ while (true) { char *test = new char[100]; Sleep(100); } cin.get(); return 0;原创 2017-10-11 16:50:20 · 5552 阅读 · 0 评论 -
c++内存泄露(一):理解内存泄漏及内存泄漏常见情况
程序中通常包含着静态内存和栈内存。静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量(全局变量)。栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁。对于栈对象,仅在定义的程序块运行时才存在,程序退出,栈对象也随即销毁;static对象和全局对象则是在程序结束时销毁。除了静态内存和栈内存,程序还拥有...原创 2017-10-11 16:43:23 · 9618 阅读 · 4 评论 -
C++ 遍历目录文件及打印文件和其后缀
C++ 遍历目录文件及打印文件和其后缀#include #include #include #include #include using namespace std;typedef std::vector FilenameVec;std::string GetFileExtension(std::string fileName){ assert(fileName原创 2017-11-09 11:04:32 · 429 阅读 · 0 评论 -
C++ socket bind() 函数绑定错误
C++ bind()函数绑定错误VS2013编译错误:Error48 errorC2440: 'initializing' : cannot convert from 'std::_Bind' to 'int'现象:Socket编程中bind()函数出错,然而其他API都能正常运行。原因:c++ 11,在命名空间std中实现了bind函数,与socket编程里的bind原创 2016-11-25 20:36:47 · 3026 阅读 · 0 评论 -
c++智能指针关联容器应用实例:文本查询程序
这是一个c++ primer 第五版的文本查询程序对于学习/理解关联容器和智能指针 有一个很好的帮助。// TextQuery.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include原创 2016-10-18 19:52:56 · 502 阅读 · 0 评论 -
c/c++ 字符串处理函数汇总
本文转载于:http://blog.csdn.net/cabinriver/article/details/8938726C++ string 函数1、string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函转载 2016-10-18 20:02:51 · 503 阅读 · 0 评论 -
c++虚函数表解析
转载于陈皓bolg http://blog.csdn.net/haoel/article/details/1948051前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。转载 2016-07-19 17:45:30 · 227 阅读 · 0 评论 -
c++模板链表实现
简介:主要是利用模板实现链表的操作。模板的使用,使得程序的开发量大大地减少。可以先定义一个链表LinkList,之后可以定义自己的类了(例如:Student类),使用时就可以这样调用了LinkList L;下面便是链表的实现:LinkList.cpptemplatestruct Node{ Type data; struct Node *next;};templ原创 2016-03-24 17:48:19 · 2394 阅读 · 0 评论 -
继承、虚函数的应用模式(二):事件注册与调度机制
继《继承、虚函数的应用模式:事件注册与调度机制》之后,这个模式是总结的另一种注册调用机制,下面介绍该模式的类图关系,并且可以下载其demo代码进行学习交流。 actionAregister:定义一个注册方法,将注册的对象指针,保存在容器中。actionA:定义动作A的接口,并且在构造函数中调用actionAregister注册动作A的对象指针。actionBregister:同...原创 2018-12-16 17:06:23 · 256 阅读 · 0 评论