![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
zzmc
这个作者很懒,什么都没留下…
展开
-
C++对象的内存分布和虚函数表
c++中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。 1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。 2.静态数据成员被提取出来放在程序的静态数据区内,为该类所有对象共享,因此只存在一份。 3.静态和非静态成员函数最终都被提取出来放在程序的代码段中并为该类所有对象共享,因此每一个成员函数也只能存在一份代码实体。在c++中类转载 2012-11-27 14:42:31 · 499 阅读 · 0 评论 -
一直没有发现的调试工具,valgrind
Valgrind 使用简单说明本文部分参考网上相关资料。Valgrind能做什么? •内存使用检测,包括: –内存泄漏 –非法内存访问 –未初始化变量使用 –重复释放内存 •多线程竞争 –检测死锁 -检测竞争Valgrind还能做什么? •性能分析 –Cachegri原创 2013-08-16 20:25:57 · 615 阅读 · 0 评论 -
PHP与 后台c交换数据
为什么要用json跟XML相比,JSON的优势在于格式简洁短小,特别是在处理大量复杂数据的时候,这个优势便显得非常突出。从各浏览器的支持来看,JSON解决了因不同浏览器对XML DOM解析方式不同而引起的问题。目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言转载 2013-08-24 10:00:03 · 1851 阅读 · 0 评论 -
rpc通信
今天得到一个名字叫“RPC”通信机制,这是什么东西呢?google一下解释直接贴过来:1、RPC(Remote Procedure Call Protocol)RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用远程另一套机器上的子程序,就像LPC(本地过程调用).越转载 2013-08-24 16:25:55 · 2730 阅读 · 0 评论 -
c++ 成员函数与变量的内存分布
静态成员函数与一般成员函数的唯一区别就是没有this指针,因此不能访问非静态数据成员,就像我前面提到的,所有函数都存放在代码区,静态函数也不例外。所有有人一看到 static 这个单词就主观的认为是存放在全局数据区,那是不对的很明显,类的内存大小和其唯一的成员变量的内存大小是一致的。内存地址也是一致的。他们甚至可以相互转换。换成结构体结果也是一样。网友可以自己运行上面代码来进行确认。 这个转载 2013-07-31 23:37:30 · 872 阅读 · 0 评论 -
Resource Acquisition Is Initialization (RAII)是什么?(封装的优势)
先来看一小段代码,它取自 Bjarne Stroustrup 的演讲“Speaking C++ as a Native”:// use an object to represent a resource ("resource acquisition is initialization")class File_handle { // belongs in some support l转载 2013-07-22 17:27:13 · 784 阅读 · 0 评论 -
输入和输出缓冲区更新(试过成功)
原文:http://blog.csdn.net/u010064842/article/details/87692291.区分概念什么是缓冲区 缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。为什么要转载 2013-05-09 09:16:51 · 3869 阅读 · 0 评论 -
分割字符串
The strtok() function parses a string into a sequence of tokens. On the first call to strtok() the string to be parsed should be specified in str. In each subsequent call that sh转载 2013-05-22 09:06:58 · 788 阅读 · 0 评论 -
二级指针删除单向链表
今晚在这里看到一篇文章,http://coolshell.cn/articles/8990.html,原文给的是代码片段,本着动手实践的原则,另外顺便复习一下链表,写了下代码#include #include typedef struct _node { int n; struct _node *next;} node;typedef int (* remove_fn)(n转载 2013-05-16 15:11:48 · 569 阅读 · 0 评论 -
c++中的重载(同一类)覆盖(不同类)
Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Ba转载 2013-03-23 12:43:44 · 1029 阅读 · 0 评论 -
信号和槽的使用
/* 功能,Sigslot入门 日期,2012年9月1日 星期六 环境,win7-32-vs2010 */#include #include #include #include "sigslot.h"using namespace std;using namespace sigslot;class ThreadMutex { private:原创 2013-04-01 21:01:08 · 859 阅读 · 0 评论 -
Linux定时器的使用
源自:http://www.cppblog.com/jerryma/archive/2012/01/31/164704.htmlLinux定时器的使用使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠转载 2013-03-30 23:24:03 · 441 阅读 · 0 评论 -
Cmake 模板和语法
开始一直犹豫是不是要学cmake对于一个没有项目驱动的人来数,感觉用不用都可以。我大可用一个简单的Makefile模板来做一些简单的工程阿。或者我还可以用autotools等。不过既然已经看了一个晚上了,还是把它弄懂点吧,记得曾经用过automake,好像没有弄到自己感觉满意就放下了。现在这个cmake好像简单些,借前人的话说就是用CMAKE本身也是在编程。当反复写了几个helloworld的原创 2013-01-29 16:08:04 · 8816 阅读 · 1 评论 -
curl命令使用
linux下的curl,有着非同一般的魔力,有人称它为下载工具,我更倾向于叫它“文件传输工具”因为它好像无所不能。从常见的 FTP, HTTP, TELNET, 等协议,还支持代理服务器,cookies,下载以及上传文件,curl 打印页面curl www.baidu.comcurl 抓取一个页面,然后进行保存 -o (小写的英文字母 o )curl -x ip:p转载 2013-01-27 12:17:04 · 717 阅读 · 0 评论 -
自己学写爬虫之----CS240EXCEPTION(一)
#ifndef CS240_EXCEPTION_H#define CS240_EXCEPTION_H#include using namespace std;class CS240Exception { protected: std::string message; public: CS240Exception() : message("Unknown Error")原创 2013-01-26 15:23:32 · 402 阅读 · 0 评论 -
boost 编译和使用
http://www.cppblog.com/wfcadd/archive/2011/04/06/143513.htmlhttp://www.cppblog.com/mymsdn/archive/2010/03/30/install-boost-under-boost.html1.从boost官网下载boost 1.46.12.执行 apt-get install buil转载 2012-11-20 20:54:19 · 635 阅读 · 0 评论 -
C++ 容易忽略的输入输出特性
1 cin cout cin.get() cin.get(ch)的返回值(1)cin ,cout 就不用多说了还是返回一个iostream对象,因此它们可以这么使用。cin >> var1 >> var2 >>var3;cout cin.get() 没有参数时,返回值是一个整数,所以通常这么用cinwhile((ch=cin.get()) != EOF) /转载 2012-11-30 08:38:44 · 453 阅读 · 0 评论 -
c++虚函数内部机制
基类析构函数声明为virtual是很重要的~比如:有一class B 继承自 上边的 class A;如果我们这样 A pClassA = new B(pClassA这里是个指针); 即new 一个派生类(B)的对象,并且有基类的指针来指向它,这样没问题。但是如果我们要释放刚才的空间delete pClassA 这个就会有麻烦,因为C++标准中对这一行为没有明确定义,即通过基类指针来销原创 2013-09-18 23:29:32 · 1090 阅读 · 0 评论