abc实现多态
多态的含义 多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。 12345678910111213141516171819202122232425262728293031# 动物类 都有名字这个属性 和吃这个方法class Animal(object): def __init__(self,name): self.name=name def eat(self): print(self.name+"吃1111111111111111") # 让定的猫这个属性去继承动这个方法class Cat(Animal): def __init__(self, name): # self.name=name super(Cat, self).__...
《呼吸》
《商人和炼金术师之门》也许因为在做“科幻世界的电话”主题的分享,感觉电话与门有异曲同工之妙。主人公讲述了三位商人与一个炼金术师巴沙拉特的门的故事。 巴沙拉特展示了一种可以在过去和未来之间穿梭的神奇的年门,通过一个金属环的穿梭实验,展示了从一端到另一端会存在时间差。 第一个故事中,一个叫哈桑的绳匠,在二十年后的自己的指引下,躲过劫难,发现了一箱金子,然后发财,在二十年后成为了一个富豪。“仗势未来,横行现在的人,也许在第一次使用你年门的饿时候,就会发现他年长的自己早已亡故”。“忏悔和赎罪可以抹掉过去的罪孽”。“未来也是一样的,在这方面,它和过去没有区别”。故事没有着眼于未来与现在的矛盾,到底是先挖出箱子还是未来的人先知道箱子就在那里,无从得知。 第二个故事中,一个叫阿吉布的织工,发现二十年后的自己依旧穷困潦倒,却在床头存有一箱金币。于是从二十年后自己那里偷走了一箱金币,因此与爱慕的女人生活在一起,但是妻子却被强盗掳走,金币全都做了赎金。于是他开始一点点攒着金币,放在床头的箱子里,等着有朝一日,年轻的自己来偷走攒下的金币。同样他的妻子也回到过去,教会了他未来才掌握的、展示给妻子的东西。...
《霍乱时期的爱情》
我读了个什么从一开始的霍乱,像霍乱一样到处死人的战争,像霍乱一样四处传播的糜烂的欲望与爱情,到最后升起的一面虚假霍乱旗帜的船只,以及上面包庇的到最后终在一起成为相知的眷侣。 从故事的角度。乌尔比诺医生死了。从三十多年前就有一个人开始盼望着、精心筹划着等待着这一刻的到来。在着三十年中,阿里萨因为近乎朝圣的迷恋着菲尔米娜,菲尔米娜过着幸福的夫妻生活。阿里萨压抑着自己的希望与绝望,近乎疯狂地成为当地的猎手,在各种各样的女人之间游走,沉浸在肉欲当中,却从未真正的喜欢上另外一个人,发生各种不伦的关系。然而在八十岁的时候,对待爱情,对待那个曾经的喜欢的执念,却仍旧像一个年轻人狂热、痴迷、幼稚。 他为了能够拥有平等的地位,成为了内河航运公司的老板。为了能够等到自己爱的人,前身健体精心计算着,企图通过寿命熬过对方这种愚蠢的方法取胜。五十年间,可以忍住不去见最爱的人,让所有的相遇看起来都那么巧合。五十年后,仍旧像个刚刚开始追求爱情,得到爱情的年轻人,依旧疯狂、冲动。 这大概就是爱而不得,白月光,白玫瑰,会以一种奇妙的存在,隐藏在男生的心底,无论自己多么疯狂与冲动,无论自己经历了多少风雨变得麻木不仁...
简介
学而不思则罔,思而不学则殆。 深刻体会。每天思考一堆东西,沉浸在自己发现的小规律和小感悟当中,实际上,书中早有成套的理论,概括升华了你的结论。仅仅通过个人的无休止的思考得到的知识和觉悟始终是优先的,思而不学则殆,非常关键。以后多读书,在这里整理一下自己的读书笔记吧。
1 C++左值右值
左值右值 参考文献 cnblogs.com/sunchaothu/p/11343517.html https://www.zhihu.com/question/363686723/answer/1976488046 为了导入右值和移动语义,首先复习了以下临时对象在函数返回值和传参数时构造了几次;然后对比介绍了左值和右值,以及右值引用的形式和含义。为移动语义和完美转发的介绍做铺垫。 1 问题导入——参数与返回值的角度C++11 引入了 std::move 语义、右值引用、移动构造和完美转发这些特性。 函数返回值是传值的时候发生几次对象构造、几次拷贝? 函数的形参是值传递的时候发生几次对象构造? 函数返回值原理123456789101112131415161718192021222324252627// main.cpp#include <iostream>using namespace std;class A{public: A(){ cout<<"class A co...
3 C++完美转发
完美转发1 概念首先解释一下什么是完美转发,它指的是函数模板可以将自己的参数“完美”地转发给内部调用的其它函数。所谓完美,即不仅能准确地转发参数的值,还能保证被转发参数的左、右值属性不变。 1234template<typename T>void function(T t) { otherdef(t);} function() 函数模板中调用了 otherdef() 函数。在此基础上,完美转发指的是:如果 function() 函数接收到的参数 t 为左值,那么该函数传递给 otherdef() 的参数 t 也是左值;反之如果 function() 函数接收到的参数 t 为右值,那么传递给 otherdef() 函数的参数 t 也必须为右值。 2 C++98实现完美转发 C++98通过左值引用和常量左值引用+函数重载实现完美转发 C++98/03 标准下的 C++ 也可以实现完美转发,只是实现方式比较笨拙。通过前面的学习我们知道,C++ 98/03 标准中只有左值引用,并且可以细分为非 const 引用和 const ...
2 C++移动语义
C++移动语义 参考文献 https://www.cnblogs.com/sunchaothu/p/11392116.html https://stackoverflow.com/questions/3106110/what-are-move-semantics/3109981#3109981 1 可拷贝和可移动的概念 在面向对象中,有的类是可以拷贝的,例如车、房等他们的属性是可以复制的,可以调用拷贝构造函数和拷贝赋值函数。 有点类的对象则是独一无二的,或者类的资源是独一无二的,比如 IO 、 std::unique_ptr等,他们不可以复制,但是可以把资源交出所有权给新的对象,称为可以移动的,可以调用移动构造函数和移动赋值函数。 C++11最重要的一个改进之一就是引入了move语义,这样在一些对象的构造时可以获取到已有的资源(如内存)而不需要通过拷贝,申请新的内存,这样移动而非拷贝将会大幅度提升性能。例如有些右值即将消亡析构,这个时候我们用移动构造函数可以接管他们的资源。 2 移动构造函数和移动赋值函数1234567891011121314151617181920212...
4.5 链表与映射
链表与映射复制带随机指针的链表问题描述给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。 例如,如果原链表中有 X 和 Y 两个节点,其中 X.random –> Y 。那么在复制链表中对应的两个节点 x 和 y ,同样有 x.random –> y 。 返回复制链表的头节点。 用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示: val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。你的代码 只 接受原链表的头节点 head 作为传入...
4 TLS密钥协商
握手协议主要包括:密钥协商机制和密钥交换算法。基本的密钥协商机制是一样的,只是在不同的步骤交换的内容不一样。握手是为了协商出一个client和server端都认可的一个对称秘钥,典型的秘钥协商算法有两种,RSA和ECDH,简明介绍下这两种算法会让你对这个过程更加清晰。 0 TLS1.1协议构成12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394enum { hello_request(0), client_hello(1), server_hello(2), certificate(11), server_key_exchange (12), certificate_request(13), server_hello_done(14),...
5 TLS实验
TLS1.3实验 主要包括两部分实验 TLS协议数据内容 TLS协议交互过程 TLS1.3数据内容实验截图 client hello server hello client change cipher spec & client data server data 证书实例 client hello TLSrecordlayer包括content type,TLS version,length。包裹的TLS handshake protocol Handshake protocol包括 handshake type length version random session id length session id(通过session ID判断是否是同一个会话) cipher suits length cipher suits compress method length compress method extensions & extension length extension reserved extension server_n...














