- 博客(12)
- 资源 (7)
- 收藏
- 关注
转载 C++父子类继承时的隐藏、覆盖、重载
存在父子类继承关系时,若有同名成员函数同时存在,会发生隐藏、覆盖和重载这几种情况。对于初学者也比较容易混淆,为此,我整理了一下我的个人看法,仅供参考。希望对大家理解有帮助,也欢迎指正。1.父子类继承关系: 子类复制父类全部成员 首先,理解父子类的继承关系是怎样发生的。在此基础上就很容易理解它们之间的关系和区别。 每一个类有它自己的成员变量和成员函数,是一个独立的空间
2017-06-08 17:54:40 664
转载 C++设计模式——单例模式
C++设计模式——单例模式问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中,会专门有一个日志模块,负责写日志,由于在系统的任何地方,我们都有可能要调用日志模块中的函数,进行写日志。那么,如何构造一个日志模块的实例呢?难道,每次new一个日志模块实例,写完日志,再delete,不要告诉我你是这么干的。在C++中,可以构造一个日志模块的
2017-06-08 17:50:02 404
转载 链接与运行时动态库依赖
The -L option supplies a colon-separated library path that is to besearched at LINK TIME for libraries. Thus cc -o foo foo.c -L/usr/local/lib -lfoomeans that either libfoo.a or libfoo.so should b
2017-06-02 17:50:46 450
转载 C++ 回调函数的简单例子
调用端[html] view plain copy//下面的这个_stdcall很重要的 void _stdcall Test(int n, string str) //如果不定义全局变量,而定义在类中 则必须是 静态成员函数 { while(n-->0) coutn" "strendl; }
2017-06-02 15:28:31 995
转载 回调函数c++实现
Callback最本质的特征包括两点:注册和触发C++中如何将类成员函数作为回调函数使用,必须是静态方法吗?必须是静态成员函数或者全局函数来实现回调函数大概原因是普通的C++成员函数都隐含了一个传递函数作为参数,即this指针,C++通过传递this指针给成员函数从而实现函数可以访问C++的数据成员。由于this指针的原因,使得一个普通成员函数作为回调函数时就会因为隐含
2017-06-02 15:26:25 568
转载 C和C++之间库的互相调用
昨晚有个朋友问我关于在C中调用C++库的问题,今天午饭后,由于脖子痛的厉害而没有加入到我们组的“每天一战”的行列中去,所以正好将C和C++之间的库调用关系做个总结。1.extern "C"的理解:很多人认为"C"表示的C语言,实际并非如此,"C"表示的是一种链接约定,只是因C和C++语言之间的密切关系而在它们之间更多的应用而已。实际上Fortran和汇编语言也常常使用,因为它们也正好符
2017-06-02 10:44:12 447
转载 如何用C语言封装 C++的类,在 C里面使用
本文给出了一种方法。基本思想是,写一个 wrapper文件,把 C++类封装起来,对外只提供C语言的接口,和 C++i相关的都在 wrapper的实现文件里实现。1. apple.h[cpp] view plain copy print? #ifndef __APPLE_H__ #define __APPLE_H_
2017-06-02 10:41:39 2871 1
转载 动态库(.so)链接静态库(.a)的情况总结
动态库(.so)链接静态库(.a)的情况总结 一般来说在链接时想要使用静态库有三种方法:1、link时加上 -static 选项;当加上 -static选项后,gcc会把所有用到的库都做静态连接。2、link时直接指定想要静态连接的.a文件的绝对路径。优点是除非.a文件不存在,否则肯定有效;缺点也是很明显,拿到其他机器上编译时,.a文件也必须在相同的路径下存放。3、
2017-06-01 18:08:24 561
转载 Linux 依赖动态库 / 静态库的动态态库 / 静态库
一、 依赖动态库的动态库libfun.so依赖动态库libtest.so(libfun.so动态库里的函数intnothing()调用了libtest.so里的intmytest()函数),而main.exe又调用了libfun.so的函数int nothing()。 下面两种方式都能工作:1> 常用的方式g++ -shared -fPIC -o lib
2017-06-01 18:06:37 568
转载 linux下so动态库一些不为人知的秘密(中)
我们知道linux链接so有两种途径:显示和隐式。所谓显示就是程序主动调用dlopen打开相关so;这里需要补充的是,如果使用显示链接,上篇文章讨论的那些问题都不存在。首先,dlopen的so使用ldd是查看不到的。其次,使用dlopen打开的so并不是在进程启动时候加载映射的,而是当进程运行到调用dlopen代码地方才加载该so,也就是说,如果每个进程显示链接a.so;但是如果发布该程序时候忘记
2017-06-01 16:36:45 470
转载 linux下so动态库一些不为人知的秘密(上)
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名。二者都使用广泛。本文主要讲动态库方面知识。 基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库,使用ldd命令查看 # ldd /bin/lslinux-vdso.so.1 => (0x00007fff597ff000)libselinux
2017-06-01 16:35:33 540
转载 Linux 链接库编译与多重依赖
现有如下问题:我们在第三方动态库(比如 boost 库)的基础上,开发了自己的动态库供公司内部项目使用。在使用自己的这个动态库的时候,该如何进行编译呢?即,依赖链条是这样的情况下:程序–(依赖)–>libA.so–(依赖)–>libB.so该如何进行编译。为了研究这个问题,我们建立一个目录结构,写几个简单程序来模拟一下。以下内容将从构建动态库开始,一步步展示如何达成
2017-06-01 16:33:42 872
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人