- 博客(244)
- 资源 (1)
- 收藏
- 关注
原创 google protocol buffer (C++,Java序列化使用实例)
转载,请注明出处: http://blog.csdn.net/eclipser1987/article/details/8525383 (eclipser@163.com)1.下载安装:google protocol buffer 的官网地址是:http://code.google.com/p/protobuf/ 建议下载稳定版本:protobuf-2.4.1
2013-01-21 16:48:56
17634
原创 C++可变长参数模版(Variadic Templates)
/* * File: main.cpp * Author: Vicky.H * Email: eclipser@163.com */#include templatestruct Tuple_Impl;templatestruct Tuple_Impl {};templatestruct Tuple_Impl : public Tuple_Impl {};
2013-01-11 15:51:21
2654
原创 java加密工具类
package cn.vicky.utils;import java.security.MessageDigest;public class MD5 {// private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",// "6", "7", "8", "9", "a", "b", "
2013-01-09 14:26:23
1719
原创 回顾struct,union的申明,初始化,io处理
/* * File: main.cpp * Author: Vicky.H * Email: eclipser@163.com */#include #include #include void f(void) { struct A { short age; int money; char
2012-12-11 17:34:28
2492
原创 宏,函数模版方式实现继承方案
在QT中,对于所有定义了信号和槽的类,定义的开始处需要加入:Q_OBJECT宏!!!/* tmake ignore Q_OBJECT */#define Q_OBJECT \public: \ Q_OBJECT_CHECK \ static const QMetaObject staticMetaObject; \ Q_OBJECT_GETSTATICME
2012-11-28 11:48:22
924
原创 libcurl使用
libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。, libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当
2012-11-02 16:32:54
7509
1
转载 STLport安装指南
STLport安装指南STLport-4.6 是完全兼容ANSI C++标准的类库。This distribution contains STLport sources only, no binaries.To use STLport iostreams, you have to build STLport library from sources in "src"director
2012-10-12 10:20:18
3676
原创 C++ 流的粗略运用
/* * File: main.cpp * Author: Vicky.H * Email: eclipser@163.com */#include #include #include #include class A {public: friend std::ostream& operator<<(std::ostream& os,
2012-09-29 11:51:48
6328
原创 C++为什么不建议使用malloc,calloc,realloc来分配内存?
为什么C++中不建议使用malloc calloc realloc等C语言函数?因为:这样分配的空间,返回的指针需要通过free来释放,但free释放空间不同于delete,free不会执行析构函数! /* * File: main.cpp * Author: Vicky.H * Email: eclipser@163.com */#include #inc
2012-09-27 13:14:54
7112
原创 new (nothrow) T() 的原理
查看中对new的声明.void* operator new(std::size_t) throw (std::bad_alloc);void* operator new(std::size_t, const std::nothrow_t&) throw();void* operator new[](std::size_t) throw (std::bad_alloc);void*
2012-09-27 12:50:12
5155
转载 内存管理元素
1、三个最重要算法:uninitialized_copy、uninitialized_fill、uninitialized_fill_n 会构造新的对象object,而copy、fill、fill_n会赋新值于已存在的对象上。 2、construct 构造器:template void construct(T1* p,const T2& value);construct(p,v
2012-09-27 11:34:02
707
原创 未初始化的存储uninitialized_x
除了,allocator空间分配器之外,中还有初始化容器标准库函数.分别为:templateinline _ForwardIterator uninitialized_copy(_InputIterator __first, _InputIterator __last,_ForwardIterator __result) templateinline void uninit
2012-09-27 11:03:48
837
原创 常规函数适配器,成员函数适配器
stl算法中,可以使用函数指针以及仿函数传递算法.那么为什么还需要常规函数适配器呢?因为,常规函数适配器无"配接能力"例子:/* * File: main.cpp * Author: Vicky.H * Email: eclipser@163.com */#include #include #include #include clas
2012-09-24 16:51:13
1249
原创 关于type_info与typeid
不同编译器的返回结果不同!更多请参见:http://www.cppblog.com/smagle/archive/2010/05/14/115286.html/* * File: main.cpp * Author: Vicky.H * Email: eclipser@163.com */#include #include class A {};
2012-09-20 14:13:40
5503
原创 多态的实现方式,继承与模版函数
stl,boost中几乎所有容器都采用的是模版类+模版算法的方式实现多态,因为其效率更高!究其原因,静态编译/* * File: main.cpp * Author: Vicky.H * */#include /**动物*/class Animal {public: virtual ~Animal() { }; virtual
2012-09-20 11:50:24
874
原创 throw(),空异常描述符,中断描述符
在分析stl源码的时候,发现几乎所有函数都包含空异常描述符throw().那么throw()究竟有何意义呢?其实,与其称其为"空异常描述符",还不如称其为"中断描述符".简单的说,如果throw()修饰的函数中发生任何异常,即便函数外部有捕获操作,函数也不会抛出任何异常,那么程序将直接终止!!!简单的说,对使用throw()修饰的函数进行try{}catch(...){}是没有任何意义的!
2012-09-19 18:04:51
2922
原创 常规友元函数,模版友元函数以及友元类.
友元函数和友元类 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检
2012-09-15 14:48:44
1802
原创 windows下,使用netbeans远程连接solaris11开发C++,并且使用DTrace工具
1.VM虚拟机安装sol-11-1111-text-x86.iso 2.安装完毕,查看gcc以及gdb版本.gcc -vgdb -vsol-11-1111-text-x86 不会默认安装gnu gcc 编译器,需要自己下载安装. 3.安装c++ 编译器.首先查看最新版本的gccroot@vicky:~# pkg search gccINDEX
2012-09-07 14:41:48
1532
原创 关于__type_traits的设计思想
/* * File: main.cpp * Author: Vicky.H * *///#include #include namespace cn_vicky { /** 2两个空白类,没有任何成员,不会带来额外负担,却能通过类型代表真假,可以用于函数特化参数 */ struct __true_type { }; s
2012-09-05 13:13:31
1199
原创 多参数返回类型_自定义tuple
/* * File: main.cpp * Author: Administrator * */// Java 中可以使用Object[] 方式用于返回多个值的函数,因为Java可以使用Object[] objs = fun()的方式接收,// 最重要的是,objs的长度在Java程序中是可知的,而如果C++中却不行!// public static Obje
2012-09-02 21:52:28
1202
原创 使用模版类作为模版参数
/* * File: main.cpp * Author: Administrator * */#include //-------------------namespace trait { template struct type_init; template <> struct type_init {
2012-09-02 20:41:43
4092
原创 类模版中函数模版
/* * File: main.cpp * Author: Administrator * */#include template class A {public: void f1(void); static void f2(void); /**模版类中的模版函数,在类模版A未被特化前,虽然可以声明与定义,
2012-09-01 23:55:47
1022
原创 类的成员函数指针,类的静态成员函数指针
/* * File: main.cpp * Author: Vicky.H * */#include void f1() { std::cout << "f1" << std::endl;}void f2() { std::cout << "f2" << std::endl;}class A {public:
2012-08-31 17:56:18
2413
原创 函数指针与仿函数
/* * File: main.cpp * Author: Vicky.H * */#include #include int cmp(const void* e1, const void* e2) { const int* i1 = (const int*) e1; const int* i2 = (const int*) e2;
2012-08-30 15:20:00
4022
原创 使用宏动态创建类
/* * File: main.cpp * Author: Vicky.H * */#include class Command {public: virtual void func1(const char* command) = 0; virtual void func2(const char* command) = 0;
2012-08-29 14:08:14
1951
原创 模版类中嵌套自定义模版类型
/* * File: main.cpp * Author: Vicky.H * */#include #include class alloc {};inline size_t __deque_buf_size(size_t n, size_t sz) { return n != 0 ? n : (sz < 512 ? size_t(51
2012-08-28 10:07:38
2429
原创 模板类静态变量
/* * File: main.cpp * Author: Vicky.H * */#include class A {public: static int _var;};int A::_var = 1;templateclass B {public: static int _var;};//in
2012-08-27 16:33:41
2696
原创 使用mina2框架编写分布式日志服务器
日志服务器,那游戏服务器为实例,重要的数据库服务器,游戏服务器,网关服务器...往往不在意日志服务器,而通常情况下,日志简单的通过log4j,c下的log4c,cpp下的log4cpp等日志工具,当然,这类日志工具是主流的开源框架,性能,功能面都不错,但如果,我们需要记录几乎每个玩家,没个操作,那么这类在应用程序中添加的日志记录将会消耗大量系统资源,导致服务器卡慢.顾,分布式日志服务器在某些项目架
2012-08-03 10:00:55
3601
原创 ClassLoader,URLClassLoader,类的动态加载!
实例svn:svn://www.oksvn.com/classloader/ClassLoadersvn://www.oksvn.com/classloader/ClassLoaderWeb 尤其,通过URLClassLoader,在配合如J2EE等方式,项目JMX管理,那么实现项目的动态修改十分方便,比如,Mina中的Filter,我们可以非常灵活的增加,修改,更新,删除Filt
2012-07-30 11:58:23
3180
原创 netty 下载地址
中国的防火墙一向是强大的.jboss netty 网站也在屏蔽之列http://www.jboss.org/netty/下载可以进入下面网址https://github.com/netty/netty/downloads
2012-07-17 11:34:17
1151
原创 早该被淘汰的中国移动游戏基地
真心吐槽帖,尼玛的中国移动游戏基地,不晓得这个平台是那个年代的技术,技术实在是太落伍,没有测试环境,必须在正式环境进行调试,而且不提供电信代理移动,接入的时候,只能采用远程调试,或者日志方式来进行接入开发,延迟高得离谱,尼玛,数据还用xml传递,再不济能用json嘛.传一堆的垃圾数据,数据过大,返回数据都是错误的还死不认账,一口:我们接入了那么多游戏,没有任何错误,尼玛,要是没错,老子名字倒着写.
2012-07-12 15:23:50
1060
原创 Java远程调试.使用IDE netbeans
上一篇文章,主要讲述的是c程序中fork()子进程的调试,其核心思想无外乎是远程调试的一部分.这里我将讲述,java的远程调试. 参见,小石头的文章:http://www.blogjava.net/yongbing/articles/221179.html 主要讲述要调试的java程序运行参数.首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB
2012-06-29 17:44:43
3388
原创 windows下远程开发c/c++,fork()子进程调试方案.
一下开发使用IDE:netbeans windows共享文件方式远程linux下gun开发c/c++.一向的,看源码:尝试在19行加入断点,19行将会在子进程中运行,由于gdb的缘故(请google),在使用netbeans直接调试的时候,不会进入该断点(断点无效)!调试打印数据为:&"warning: GDB: Failed to set controlling termin
2012-06-29 17:35:40
4548
原创 C,C++头文件分类整理.
// C、传统 C++#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //文件输入/输出#include //参数化输入/输出#include //数据流输入/输出#include //定义各种数据类型最
2012-05-30 10:44:35
1253
原创 关于虚析构函数的意义以及operator new与operator delete
/* * File: main.cpp * Author: Vicky * */#include #include #include class A{public: void* operator new(size_t size) { std::cout << "分配大小:" << size << std::endl;//
2012-05-21 15:42:12
605
原创 关于cmwap的代理
在中国移动提供的网络连接中,分为CMNET和CMWAP两种,其中CMNET可以无限制的访问互联网络,资费比较贵。CMWAP类似一个HTTP的代码,只能访问支持HTTP的应用,但是资费便宜,稳定性比较差。 在实际的J2ME网络编程中,一般需要提供以CMWAP代理的方式连接网络,在J2ME中,连接的代码和直接连接有所不同,代码如下: HttpConnect
2012-05-15 09:21:04
860
原创 关于new注意事项
/* * File: main.cpp * Author: Vicky * */#include #include #include class User {public: User() {std::cout << "创建一个User" << std::endl;} User(const char* username) {s
2012-05-10 18:17:36
881
原创 包含同一头文件的多个源文件,声明并定义相同类,结构体的有趣问题
一个头文件,声明的函数、类型、结构体等,只能于一个源文件实现。包含同一个头文件的多个源文件,不能定义相同名称的全局变量,即便类型不同也不可以。(但常量却可以)。包含同一个头文件的多个源头件,可以分别在源文件中声明并定义类型、结构体,但不能申明并定义函数。但这却会导致一个有趣的问题,请看实例分析。A.h 声明了3个函数,分别在B.cpp C.cpp D.cpp 中实现/* *
2012-04-27 11:34:03
8354
原创 C函数,函数指针,函数类型,函数数组,函数强制转换使用
/* * File: main.cpp * Author: Vicky * */#include #include /** 创建函数类型,可以用于创建函数数组 */typedef void (*FUNC_t)(int id, int args_size, ...);void pcreate(int id, int args_size, ...) {
2012-04-24 18:31:34
1300
原创 netbeans linux cunit cppunit 使用
源码编译CUnit 以及CppUnit。 查看文件 安装成功。 我使用的是netbeans 开发工具,远程连接centos进行C/C++的开发。Cunit 项目文件配置cunit静态连接库及运行环境编写测试文件:/* * File: CUnitTest.c * Author: Vicky.H * * Created on
2012-03-31 16:29:12
1732
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅