语言
StoryMonster
非学无以广才
非宁静无以至远
展开
-
C++ mutable关键字
对于一个类而言,类的成员发生变化,并不意味着这个类在语义上发生变化。比如: class Website { public: void readPage() const { // show this page ++visitorNum; // 改变访问者数量,并不意味着这个网站发生了变化 } private: m...原创 2019-05-05 12:52:52 · 293 阅读 · 0 评论 -
C++利用虚表指针访问类私有函数
一、C++虚表指针 编译器在编译时为每一个含有虚函数的类都会创建一个一维虚函数表,不同编译器实现细节可能不同 类中虚函数的地址在虚函数表中按照顺序排列 类的虚表指针就指向类的虚函数表,一般情况下,虚表指针存放在类实例的头部 类的虚函数表可以继承 类对象的虚表指针是在类初始化时初始化的,这也就是多态实现的原理 二、使用虚函数表获得类的私有函数 #include <iostream> #i...原创 2019-04-26 12:43:50 · 644 阅读 · 0 评论 -
C++11 std::bind
#include <functional> std::bind的作用是为已经存在的一个函数绑定参数,并返回一个新的函数对象。 对于一个普通函数,如下: int add(int a, int b) { return a + b; } 假设有一种场景,我们需要计算任意一个数与12相加的和,要求调用这个函数。我们可以做如下处理: std::function<int(int)...原创 2019-08-29 21:43:48 · 369 阅读 · 0 评论