
C++ 多态的实现原理
虚函数 在类的定义中,前面有virtual关键字的成员函数称为虚函数。 virtual关键字只用在类定义里的函数声明中,函数体定义时不用。 class Base { virtual int Fun() ; // 函数声明的时需virtual关键字 }; int Base::Fun() // 函数体定义时无需virtual关键字 { } 多态 多态性指相同对象收到不同消息或不同对象收到相同消息时产生...
虚函数 在类的定义中,前面有virtual关键字的成员函数称为虚函数。 virtual关键字只用在类定义里的函数声明中,函数体定义时不用。 class Base { virtual int Fun() ; // 函数声明的时需virtual关键字 }; int Base::Fun() // 函数体定义时无需virtual关键字 { } 多态 多态性指相同对象收到不同消息或不同对象收到相同消息时产生...
在 Windows 下可以用GetPrivateProfileString或GetPrivateProfileInt方便读取 .ini 配置文件内容,但是在 Linux 平台上就一筹莫展了。 为了解决该问题,使用 C 语言实现读取 .ini 配置文件,可在 Linux 平台上使用,不受平台限制。 #include <string.h> #ifdef WIN32 #include <...
应用中有些shell命令可能需要sudo,也就是需要root权限来完成的,比如: $ sudo spctl --master-disable # 开启软件安装的未知来源 碰到这类情况,直接使用是肯定不行的,那么我们该如何处理? 方案一 AuthorizationExecuteWithPrivileges() 这个函数是Security.framework中的一员,使用非常方便。而且还有一个封装得非...
iPhone 的 CPU 对于处理视频来说能力是非常有限的,如果要进行视频处理,比如滤镜、美颜等,都会用到设备的 GPU 能力,也就是会用到 openGL ES 的 api。 CPU 和 GPU 之间的数据传递效率十分低下,尤其是从 GPU 回传数据到 CPU,更是缓慢。比如使用 glReadPixels 从 GPU 读取数据这种模式,想要做到实时很难。 那么,在 iOS 中想要提高 GPU 和 ...
前言 在外面的时候可能会需要连接家里放的树莓派、智能路由器(Openwrt)、NAS 等设备,但是家里的网络一般没有公网 IP 不能直接连接,这时候就需要使用各种内网穿透的方法连接家中的设备。 简介 常见的内网穿透方法有 OpenVPN、 FRP、Ngrok 等,这些方案一般需要一个有公网 IP 的 VPS 做反向代理进行内网穿透连接,连接的速度取决于做中转代理的 VPS 的最大带宽。 这里介绍另...
1. 安装 X-Window yum check-update yum groupinstall "X Window System" yum install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts unlink /etc/sy...
简介 YOURLS是一款使用 PHP+MySQL 开发的开源短链接管理系统,可以创建公开或私有的短链接,允许随机或自定义关键字,拥有强大的数据统计分析功能,文档齐全,插件丰富,支持开放API扩展。 项目:https://github.com/YOURLS/YOURLS 官网:http://yourls.org/ 下载:https://github.com/YOURLS/YOURLS/archive...
WCDB 是一个高效、完整、易用的移动数据库框架,基于 SQLCipher,支持 iOS, macOS 和 Android。 本文简单记录 WCDB 在 Objective-C 项目下的使用代码。 类字段绑定(ORM) Message.h #import <Foundation/Foundation.h> @interface Message : NSObject @property ...
macOS系统如何监听USB设备连接和断开呢? 需要先区分是监听USB设备还是disk(U盘、SD卡等),如果为后者,则可以直接通过系统通知,而不需要调用IOKit监听。 监听可装载的USB设备(U盘、SD卡等) 1.注册通知 // Notification for Mountingthe USB device [[[NSWorkspace sharedWorkspace] notificatio...
前言 本文原文来自Hex-Rays Microcode API vs. Obfuscating Compiler。在IDA 7.1中IDA发布了反编译中使用的中间语言microcode,IDA 7.2和7.3中又新增了相关的C++和python API,这篇文章就是关于Rolf Rolles如何使用这一新功能来处理ollvm混淆的,代码地址:HexRaysDeob。 翻译过程中为了方便理解加入了一...