文章分类 -  C++

简谈C++,放弃那些臃肿的语法吧
摘要:记得以前总是对socket数据包解析很糊涂,相信也有很多人对此有疑惑。下面简单用C语言来解释如何解包。懂得了解包,封包自然就明白了。 socket发送和接收数据都是通过字符串的格式进行的。解包就是把这个字符串解析出来int , short , char。 假设现在有一个字符串,char sr... 阅读全文
posted @ 2015-05-15 00:29 walkabc 阅读(2062) 评论(0) 推荐(0)
摘要:记得刚毕业的时候,公司里面还有比较多的C++程序员,他们对语言的痴迷让我一度认为这才是牛人。 有一个主管叫酱油哥写个数据分析的程序,此酱油哥python很厉害,但主管希望用可以使用C++来做,毕竟数据分析对效率要求较高,尤其是公司大量的数据,光是读取就很耗时,酱油哥开始动手了,首先搞段代码去链接MySQL,然后读取数据,之后分析数据,很不幸,平时python用习惯了,再使用C++来办事,总觉得是在坑自己,后来酱油哥说可以使用python做嘛,没向主管请示的情况下,两个小时,来程序框架建好了,跑起来不错,给主管看,主管猛夸酱油哥做事迅速,后来虽知道没有使用C++来做,有没有责备什么。 但... 阅读全文
posted @ 2013-07-23 23:31 walkabc 阅读(190) 评论(0) 推荐(0)
摘要:freshman@freshman:~$ gcc --help用法:gcc [选项] 文件...选项: -pass-exit-codes 在某一阶段退出时返回最高的错误码 --help 显示此帮助说明 --target-help 显示目标机器特定的命令行选项 --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...] 显示特定类型的命令行选项 ... 阅读全文
posted @ 2013-07-23 00:02 walkabc 阅读(244) 评论(0) 推荐(0)
摘要:#include using namespace std;#include #include int printMax(int value, ...){ va_list args; va_start(args, value); int val = value; while (val) { cout<<val<<endl; val = va_arg(args, int); } return 0;}int main(){ printMax(1, 2, 3, 0); return 0;} 阅读全文
posted @ 2013-07-16 11:56 walkabc 阅读(144) 评论(0) 推荐(0)
摘要:上一篇文章,说了通过Java的使用方式来使用C++,下面就分析一下如何做。Java中的对象都是被new出来的,因为Java虚拟机有自动内存回收技术,所以不需要程序员手动delete,在使用C++的时候,我们尽量通过new的方式来创造C++对象,最后通过delete来释放内存。Java中的=赋值运算符都是把对象的引用传递,而不是C++的拷贝构造函数调用。所以我们要禁止对象拷贝,把=赋值运算符禁止掉。/* * NoCopying.h * * Created on: 2013-7-7 * Author: freshman */#ifndef NOCOPYING_H_#define NOC... 阅读全文
posted @ 2013-07-07 10:22 walkabc 阅读(737) 评论(0) 推荐(0)
摘要:首先说一下为什么会写下这片文章,学习过C++的同学都明白,C++编译器在背后隐藏了很多的秘密。例如:1、创建一个默认构造方法2、创建一个默认析构方法3、创建一个默认拷贝构造方法4、创建一个默认=运算符正是因为创建了这几个方法,导致C++对象的生命周期不可预测。对象在传递的过程中就发生了对象拷贝,在作用域结束的时候,(对象副本)不可避免的被释放了。从而可能导致(对象原本)受到无辜的牵连。其实这些还是可以预测的,比如,C++自动析构的对象都是处在栈上面的对象,而分配到堆上面的对象,C++是无能为力的,它没有能力主动终结堆上的对象。因为这些对象必须是程序员主动delete。说到这里就清楚了,尽量把对 阅读全文
posted @ 2013-07-05 00:09 walkabc 阅读(293) 评论(0) 推荐(0)