- 博客(11)
- 资源 (13)
- 收藏
- 关注
原创 C++如何声明类成员函数指针或类成员变量指针(A::*)
例如有如下类,class A{ int mem; int* func(void) { //... }};怎么声明类A的成员函数指针或成员变量指针呢?int* (A::*func_ptr) (void) = &A::func;int A::*obj_ptr = &A::mem;上面声明了指向成员函数func的函数指针,和指向成员变量mem的变量指针
2016-06-30 01:23:34 5943
转载 C++实现字符串替换的两种方法
#includestring>#includeusing namespace std;//第一种替换字符串的方法用replace()void string_replace(string&s1,const string&s2,const string&s3){ string::size_type pos=0; string::size_type a=s2.size(); stri
2016-06-29 22:36:11 5239
原创 Linux gcc编译error:"collect2: ld returned 1 exit status"
在Linux环境下编一个工程,无论怎么编译总是出现错误,提示如下: bmeta_info.cpp:4280: undefined reference to `crypt’ collect2: ld returned 1 exit status网上查的资料表示: Undefined reference to 错误:这类错误是在连接过程中出现的,可能有两种原因∶一是使用者自己定义的函数或者全局变
2016-06-27 14:03:33 155504 2
原创 【C++11学习笔记】返回类型后置语法
本次学习3个知识点: (1)auto推导类型 (2)decltype推导表达式的类型 (3)返回类型后置语法泛型编程中经常遇到的写一个加法函数:template <typename R, typename T, typename U>R add(T t, U u) { return (t + u);}int a = 10;float b = 20.0;auto c = add<
2016-06-22 01:48:22 8610 1
原创 【Linux函数】Signal ()函数详细介绍
1. 功能设置某一信号的对应动作2. 声明#include <signal.h>typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);3. 参数说明 第一个参数signum:指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号。 第二个参
2016-06-21 19:49:56 61938 14
转载 Glibc中std::qsort在多线程下出core原因分析及解决
1、问题:一个C实现的32位多线程服务在启动时core dump. 该服务运行了一年多,而此问题仅出现了一次,是一个比较难复现的问题。 出core的位置在C库的qsort函数,信号是signal 8(算术错). 2、定位:core的栈的结构如下:#0 0x4202a801 in qsort () from /lib/i686/libc.so.6#1 0x0804e74e in getFRes (d
2016-06-15 16:44:22 1159
转载 Google gflags基础与进阶
gflags是什么:gflags是google的一个开源的处理命令行参数的库,使用c++开发,具备python接口,可以替代getopt。 gflags使用起来比getopt方便,但是不支持参数的简写(例如getopt支持–list缩写成-l,gflags不支持)。如何安装使用gflags:安装:请访问地址https://code.google.com/p/gflags/,下载最新版的gflags
2016-06-07 22:17:51 1092
原创 【整理】getopt和getopt_long函数
函数声明:#include <unistd.h> int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt; #include <getopt.h> int getopt_long
2016-06-07 22:00:37 2228 1
转载 C++ 线程池实现原理
背景多线程编程是C++开发者的一个基本功, 但是很多开发者都是直接使用公司给包装好的线程池库, 没有去了解具体实现,有些实现也都因为高度优化而写得讳莫如深,让初学者看得吃力。所以写这篇文章主要是想以非常简单的方式讲讲实现原理, 希望初学者看完之后不是觉得「不明觉厉」,而是觉得「原来如此」。面朝代码首先先来一段超级简单(注释丰富)的代码展示多线程编程的经典写法。 注: 该段代码和完整运行示例请见
2016-06-07 20:36:14 11881
原创 pthread_once,pthread_key_create,pthread_setspecific,pthread_getspecific
pthread_once_t once_control = PTHREAD_ONCE_INIT; int pthread_once(pthread_once_t *once_control, void (*init_routine)(void)); 这个api的主要用途是确保所有的线程传入同一个once_control时,init_routine只会被执行一次。后续线程再对同一个once_
2016-06-05 18:38:05 1169
转载 每天学点C++知识:尽可能使用枚举类
静态代码分析工具可简化编码过程,检测出错误并帮助修复。PVS-Studio 是一个用于 C/C++ 的静态代码分析工具。该团队检测了 200 多个 C/C++ 开源项目,包括了 Unreal Engine、Php、Haiku、Qt 和 Linux 内核等知名项目。于是他们每天分享一个错误案例,并给出相应建议。伯乐在线翻译组正在翻译这个系列,今天是第一篇。下面这个 Bug 是在 Source SDK
2016-06-05 15:39:14 1568
protobuf-2.4.1
2018-01-25
很全的驱动开发工具大全
2009-06-19
MFC有界面RSA加密解密算法实现
2009-05-22
学生成绩单存取(MFC单文档文件的保存和打开的两种方法)
2008-12-30
司机售票员PV操作MFC程序模拟
2008-12-30
基于对话框的MFC程序加载位图为背景图案
2008-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人