Wkkkkk

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

C++中的函数对象

发表于 2019-05-29 | 更新于 2019-06-27 | 分类于 C++

编程设计中有一个概念,说是当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。在C++中,我们把所有能当做函数使用的对象统称为函数对象。

本文简单介绍在C++中可以被当做函数使用的对象。这些内容并不复杂,但是要想在C++中进行函数式编程,就必须要深入理解这些内容,有选择地使用,这样才能在不损失性能的前提下利用更高层的抽象解决问题。

阅读全文 »

一湖海蓝:一个人住

发表于 2019-05-27 | 更新于 2019-06-27 | 分类于 Literature

我常常热切地怀念一个人住的时光。或者说,期待再次一个人住。

进门放着两三双鞋,平跟方头的小皮鞋,白色平底的小布鞋,一双温暖的室内拖鞋。手提包摘下来,顺手落在鞋旁边的地板上。衣服架放在客厅的一侧,大衣,围巾,帽子,摘下来随手挂上,上面永远是疏疏朗朗的;走进厨房,洗手,拿出木质长形小托盘,白瓷茶壶,白瓷茶杯,沏上一壶茉莉龙珠,或者祁门红茶。端到客厅,客厅中央静静放着一套沙发椅,椅背可以调节角度,配着搭脚凳。半开的白色麻质落地窗帘外,是绿色的树冠。隐隐听到人们骑着自行车,三轮车经过的铃声,谁家正在招呼孩子回家,喝点儿茶,尘埃开始落下来。

阅读全文 »

胡弃暗:触不到的母亲

发表于 2019-05-27 | 更新于 2019-06-27 | 分类于 Literature

如果母亲没有死,某一天我们在人海中相遇,除非她主动叫住我,不然我们只能是对面相看不相识。事实上,母亲早已死去。家里没有留下一张她的相片。

阅读全文 »

李志:黄昏

发表于 2019-05-26 | 更新于 2019-06-27 | 分类于 Music

他用一种慈祥的姿态在高处安抚着你

他铺开巨大的过滤网层层信仰奢靡

他大义凌然地宣布要把纯淨筛留给你

过滤得只剩下了残骸还要你歌颂感激

阅读全文 »

李静睿:鼠疫里的异乡人

发表于 2019-05-26 | 更新于 2019-06-27 | 分类于 Literature

这就是我们的当下,斯大林和毛泽东式的恐惧笼罩不了此时此刻,我们活在更为隐秘的鼠疫之中,患病的人不再死去,他们只是时代的异乡人,他们消失了。

阅读全文 »

苏叶:总是难忘

发表于 2019-05-26 | 更新于 2019-06-27 | 分类于 Literature

六二年夏天,我考中学。发榜的时候,知道自己被录取在南京四中。
四中在当时是一个三等学校,而我住的那个大院,教授、副教授的儿子们,女儿们,几乎都被市内各名牌中学点中。那几天,他们的脸陡然添了一重小大人的矜持神色,仿佛打过了金印,便要自尊自贵起来。当时,满院的蔷薇开得正好,红红白白,颤颤巍巍,一蓬一蓬的,热闹得不分贵贱好丑。和蔷薇一起长大的孩子,却从此有了高低间的距离,有少数几个没考上重点学校的千金,躲在家里哭,走在太阳底下,脸上讪讪的。我可不。我觉得自己没刷去上“民办”已是幸运。我学习语文历史,吹点牛,可说轻松得如拣鸿毛;可是对于加减乘除开平方之类,实在感到重比泰山。

阅读全文 »

《红拂夜奔》之后

发表于 2019-05-26 | 更新于 2019-06-27 | 分类于 Literature

所有人都老了,唯有红拂永远保持天真。从这一点看王小波是爱女人的。

前阵子一个孤独来临的午后,我忽地想起了《围城》,觉得胸腔里有方鸿渐一样的苦涩。我想这就是文学的好处,文字形成的记忆乃至感知将永远鲜活,那记忆是我的。

阅读全文 »

C++中的多态

发表于 2019-05-26 | 更新于 2019-06-27 | 分类于 C++

简介

让我们从一个简单的Demo开始。

1
2
3
4
5
6
Type1 x;
Type2 y;

//此处的f()代表了对给定的输入x、y执行的操作。
f(x);
f(y);

要体现多态,f()必须能够对至少两种不同的类型(e.g. int and double ),查找并执行不同的代码实现。

简单来说,多态为不同类型的对象提供了一个同一个接口,它是面向对象编程领域的一个常见概念。此外,封装可以使得代码模块化,继承可以扩展已存在的代码,它们的目的都是为了代码重用。

多态的目的则是为了“接口重用”。也即,不论传递过来的究竟是类的哪个对象,函数都能够通过同一个接口调用到适应各自对象的实现方法。

阅读全文 »

RAII and Smart Pointer

发表于 2019-05-22 | 更新于 2019-06-27 | 分类于 C++

堆栈

本文谈一谈C++程序中变量存储的方式——堆和栈。

在C++程序中,每个线程都拥有各自的栈内存,用于局部变量的存储和构造,同时也保存了传递给函数的参数。它的工作方式非常像std::stack,参数入栈后,函数即可从栈顶取出它需要的参数;同样地,函数也可以将局部变量送入函数栈中,在返回时利用栈的特性依次自动析构(实际工作中,编译器优化和inline调用使得函数调用方式可能有所变化)。

堆上的内存由用户主动申请,不同线程共享堆上的资源。当程序申请内存时,操作系统会寻找内存中可用空间并提供给程序,系统不会主动释放这些资源(除非程序退出)。

阅读全文 »

值语义和数据抽象(二)

发表于 2019-05-21 | 更新于 2019-06-27 | 分类于 C++

什么是数据抽象

数据抽象(data abstraction)是与面向对象(object-oriented)并列的一种编程范式(programming paradigm)。说“数据抽象”或许显得陌生,它的另外一个名字“抽象数据类型/abstract data type/ADT”想必如雷贯耳。

阅读全文 »
1234

Wkkkkk

31 日志
7 分类
16 标签
RSS
© 2019 Wkkkkk
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Mist v7.1.1
|