首页 文章 精选 留言 我的

精选列表

搜索[开源周],共10000篇文章
优秀的个人博客,低调大师

C++面向对象高级编程(上) 第一周 侯捷

头文件与类声明 头文件中的防卫式声明 #ifndef _FILENAME_ #define _FILENAME_ //... #endif 扩展:为什么要添加防卫式声明(防止由于同一个头文件被包含多次,而导致了重复定义。) https://www.cnblogs.com/xyq10612/p/5910933.html 头文件的布局 #ifndef __COMPLEX__ #define __COMPLEX__ #include<cmath> //前置声明 class ostream; class complex; complex& _doapl(complex * ths, const complex); //类声明 class complex { }; //类定义 complex::function.... #endif 模板简介 构造函数 内联函数 1、你的函数在你的类本体里面定义,那么你就是一个inline。 2、如果你的函数太复杂,就没有办法inline 3、即使你把函数写在了class里面,最后的结果是否inline,是由编译器去决定的。 4、不在类里面定义的函数,你也可以把他inline,如上图(2-2)。写了一句:inline double 访问界别(access level) 1、什么东西应该是private的呢? 应该是数据的部分,因为我们的数据应该是封装起来的,不要被外界任意看到。 2、public 和private是可以交错出现的。也就是说,你的class body很大,你可以先些一段public,之后写一段private,后面想到了什么,可以再插一段public,之后还可以在写private 构造函数(constructor) 1、如果你想要创建一个对象,有一个函数会被自动的调用起来,这个函数就是构造函数。 2、下图用动态的方法去创建一个对象,得到的会是一个指针。 3、构造函数的函数名和类名相同 4、他可以有参数,参数可以有默认值(default argument) 【有了默认值,当你创建对象的时候,如果没有指明参数值,则用默认值】 5、他没有返回值类型 6、初值列——只有构造函数享有这个功能 上图把r设到re中去,把i设置到im中去 7、不写初始列就不是练家子的原因:一个变量,它的数值的设定有两个阶段,一个是初始化,一个是赋值。如果你不写初始列,直接在函数体里面赋值,证明你放弃了初始化的阶段,这样的话赋值的时间点会晚一些,效率会差一些。 8、你不可能在你的程序里面去调用构造函数,你只可能去创建对象。创建对象时,构造函数会自然而然被调用起来。 9、不带指针的类,大部分不用写析构函数。 构造函数可以有很多个-----重载(overloading) 两个构造函数real的名称相同,但是编译器是可以分清谁是谁的,所以可以重载。(编译器通过函数名,里面的参数名,参数类型等一系列的信息来区分同名的构造函数) 1、在c++中,同名(其实对于编译器来说是不同名的)的函数可以存在。 2、函数重载常常发生在构造函数中。 3、由于目前拥有的构造函数已经有默认值了,你还是可以去重载写出其他的构造函数,但是你新写的构造函数没有默认值就不行,会引起冲突。如下图,2就不会被调用 参数传递与返回值 把构造函数(ctors)放在private区域里 当不允许被外界创建对象的时候,把构造函数放在private里面。那这个类有什么用? 下图是一个有名的设计模式singleton就用到了把ctors放在prvate里 扩展:懒汉模式he饿汉模式 https://blog.csdn.net/hj605635529/article/details/70172842 常量成员函数(在函数()的后面{}的前面,写一个const ) 该函数的意思是不会改变传入的数据的内容,如下图: 上述类中,如果函数real 和函数imag没有加上const,则使用者希望不改变传入值时,给自己的调用前面加上了const程序会报错,因为类中的函数没加上const代表你传入的值可以改变。 因此,类中的real函数和imag函数需要加上const。此例说明,在设计函数的时候,要充分考虑各种情况。 const出现在对象或者变量的前面,说明我的对象或者变量是不可改动的。e.g 参数传递:pass by value vs pass by reference 1、Pass by value 是把数据整包的传过去,压入到栈中,所以尽量不要pass by value 2、引用在底层就相当于一个指针,所以传递引用就相当于传递指针那么的快 3、传引用 to const 可以保证传递速度快,而且你不会改变我传入的值。如下图: 返回值传递:return by value vs return by reference friend友元 可以直接拿你private的数据 同一个class内的各个对象互为友元(friend) 直接获取了私有数据 对于类,老师会特别注意什么地方呢? 1、数据放在private里面 2、参数和返回值尽可能使用reference来传 3、类中的函数,应该加const的就要加,否则使用者在使用的时候会报错。 4、构造函数的初始列要尽量去用。 什么情况下不能return by reference 函数运行结束的时候,函数内创建的变量会被销毁。如下图,就不能return 参数三的reference 操作符重载与临时对象 操作符重载-1,成员函数,this 1、在C++中,操作符就是一种函数,是可以让你重新定义的。 2、所有的成员函数一定带着一个隐藏的参数this,谁调用我的成员函数,这个隐藏的this就指向它(比如下图中的this) return by reference 语法分析 如果用reference来传的话,传递者无需知道接受者是以什么形式接收(也许是by value,也许是by reference) (操作符要考虑使用者的连串使用情况 ) 全域函数(不是在class中声明的函数,如下图所示) 操作符重载-2 非成员函数 无this temp object临时对象 typename ();(例如. int ();) 因为complex是函数中创建出来的,所以你的返回值不是by reference,而是by value。 临时对象:临时想要的东西,我不想给你名称,他的生命到下一行就结束了。 编译器如何区分加减和取正负呢? ---看参数就知道了,只有一个参数的,肯定是取正负 操作符重载 非成员函数 “<<” out put operator 不要想把这种操作符写成一个成员函数 (操作符有两种写法,一种是成员函数的写法,一种是非成员函数的写法),这个操作符只能考虑全局的那种写法 因为如果你返回的是引用,那么你就是要把返回值赋值给”<<”左边的”cout”,可是”cout”是标准库的东西,你不可能赋值给他,所以,对于”<<”操作符,无法写成成员函数,其他的操作符写成成员函数或者非成员函数都是可以的,但是单单这个不行。 函数的返回值类型没有用void,是因为有可能使用者会使用连续的输出,如下图

优秀的个人博客,低调大师

戴尔存储副总裁谈戴尔-EqualLogic一周年庆

好的,我必须承认。当戴尔去年宣布将收购EqualLogic的时候,我的电子邮件既有祝贺、恭喜,也有悲观的预测。对于后者,最常见的担心是围绕着客户服务,产品研发和渠道业务的保存这三方面。我听到的反馈是,很多人认为EqualLogic之前很多方面做得还不错,外界担心加入戴尔以后,一切将发生改变。 作为EqualLogic的创立人之一,我对此有自己独特的观点和看法。很难相信,距离收购已经有一年的时间了,当我回首过去的里程碑,我很想和大家一起分享一下我的想法,回顾一下过去的发展。一切都完美无缺吗?当然不是,世上完美之事本就罕见。但是过去的12个月,我觉得总的来说还是功远大于过。 首先在客户服务方面,我们在保留原有核心价值的基础上,大幅扩大了EqualLogic客户服务队伍。那些通晓产品的精英们仍然在第一线接听客户的电话,回答客户的电子邮件,比如Gunther, Mike, Don, Pete 等等,新的人才也加入了他们中。我们采取的仍然是零回避政策:如果客户遇到了问题,即时该问题并非EqualLogic独有的,我们仍然会尽心尽力帮助他们解决-不管这个问题是NIC,转换,操作系统,虚拟化软件,还是第三方应用。我们仍然坚持我们一贯的原则。加入戴尔,我们得以便利地享用到戴尔更为深厚的人才库,我们解决客户问题的North Star团队和戴尔的模式融洽得很好,并且一直前进到今天。我们继续听取反馈。戴尔EqualLogic仍然做自己独立的客户调查,每年每季度收到几百个客户的反应。这里面有很多数据,既有对我们成绩的鼓励,也有对我们不足的指出。但是我觉得最能说明问题的一个指标,是对于下面这个问题的回答-你会不会向你的朋友或同事推荐PS系列产品。我们仍然获得很高的打分,最近的一次,有98%客户回答是肯定的,我们对此引以为豪。不过我们追求完美,因此对剩余2%的客户进行跟踪调查,了解我们如何进一步改进。 感谢Gerry, Dave和其他的员工孜孜不倦的努力。下面,我想谈谈产品。大家原来第一大顾虑是,我们可能会开始推出licensing,把存储做成零点的形式。这没有发生。我们仍然提供全包的模式,如果你选择我们的服务,我们有任何新的功能,你第一时间就可以获得,就是这么简单。大家的另一个担忧是,我们会停止产品创新。然而,在过去一年,我们推出了一个新的平台,一些主要的心功能,为VMware添加了Auto-SnapManager ,推出了新型检测工具SAN HQ。工程师团队资源开始融合,产品是EqualLogic有史以来最强劲,功能是最齐全的,客户反映很好。展望将来,我们的发展路线图非常紧凑,你可以期待在今后12个月中,我们会在存储方面有更多的创新。我们的路线图将更加丰富,对产品有更高的要求。可惜,我不能在这里泄露产品机密。不过,我可以告诉大家的是,我们会继续通过自动化和创新存储管理来简化存储。我们仍然全情投入iSCSI,但我们不会教条化。如果客户对FCoE真正感兴趣,我们也会对此进行支持。EqualLogic团队和戴尔奥斯汀团队的合并让我们的人才济济,队伍更加强大。 EqualLogic成为戴尔EqualLogic以后,规模更大,产品推出速度更快,覆盖更广。我们目前已经有能力把服务器和存储器、服务和应用整合在一起,提供完美无缝的客户体验。而且戴尔添加了重要的新产品,帮助用户简化IT.‘= 那么渠道方面呢?EqualLogic渠道项目成为了戴尔PartnerDirect企业架构项目和认证道路的基石。这个基础让戴尔能够利用EqualLogic在以往取得的成功,迅速地为渠道合作伙伴提供独特的价值。收购之际,EqualLogic在北美大约有185位合作伙伴,现在这个数目翻了一番,认证企业架构合作伙伴数到达了将近400,还有更多的渠道商对此表示了兴趣。过去EqualLogic的客户,现在仍然和我们在一起,他们拥有了更多的机会,享受到更广泛的产品和服务,从而帮助他们增长业务。 回顾我们取得的成就,我想总结为EqualLogic,戴尔和您(最重要)的三赢。和很多收购不一样,我们两个公司各自产品集团拥有的抗体,并不是那种会导致产品受影响的相斥的文化。相反,两支队伍互相合作,拥有互补的技能。当我翻看日历,回顾过去一年的工作,我吃惊地发现,我其实一直在和同一批人(加上戴尔的新同事)合作,做着和过去一样的工作,只不过,资源比收购前更多了。我们仍然是"我们",我们目标是为客户提供伟大的产品。对我来说,这才是成功。 作者:戴尔存储团队副总裁/Paula Long 来源:51CTO

优秀的个人博客,低调大师

周鸿祎:我们不得不面临物联网的巨大危险和挑战

因为奇虎360 本来就是做网络安全的,所以现在经常有人问我,下一个5 年,对互联网、移动互联网的安全来说,最大的威胁和挑战是什么。 我的答案很简单,就是IOT(Internet of Things,IOT,一般译为物联网)技术带来的第四次工业革命。 现在大家都在谈IOT,这的确是一个让人激动又让人期待的伟大趋势。到了IOT时代,我们所有能看到的、能想象到的各种各样的硬件,无论是汽车、家居,还是我们身上的可穿戴设备,甚至很多工业生产制造领域的设备都将实现智能化以及与网络的实时连接。并且在我看来,比3D打印技术更让人激动的是它会带来第四次工业革命。 我也经常和国内很多生产制造领域的企业交流。对于它们来讲,IOT技术给它们带来的最直观也是最大的变化就是可以借此重新发明轮子。有了IOT技术,虽然它们依旧不能把轮子从圆的变成方的,却可以在轮子里面加入各种智能芯片和传感技术。同时,在此基础上,它们也可以把商业模式从单纯的一次性卖设备,变成实时与互联网相连,提供更多的互联网服务,从而盈利。 无疑,IOT带来了巨大的机会,它可以把互联网和很多online(线上)、offline(线下)的东西联系在一起。但是,今天我想说的是,在带来了巨大机会的同时,IOT也将给我们的社会和网络安全带来巨大的威胁和挑战。 01 企业或者社会被攻击的可能性将大大增加 以往,传统企业在进行安全部署的时候经常喜欢说,我们把自己的网络隔离起来,然后在边界的地方加上防火墙。有了这种安全防控,就可以高枕无忧了,但进入IOT时代,却并非这样。 进入IOT时代之后,无处不在的智能设备会通过Wi–Fi(一种允许电子设备连接到一个无线局域网的技术)、蓝牙等各种无线协议连接在一起,整个世界都会变成一张联系空前紧密的大网,而连接点越多也就意味着被攻击的可能性越大。 举个例子,现在有很多厂商想要研发制造智能汽车,我曾经和他们交流过。在他们看来,未来智能汽车存在的最大问题不是自动驾驶,也不是电机充电,而是消费者会担心行驶在路上会不会被人攻击。 其中,有的厂商认为自己的系统非常坚固,几乎不可能被攻击。然后我给他讲了一个道理:你的智能汽车上有蓝牙、有Wi–Fi,这些可能都需要你用手机来操控。一旦如此,我就可以先控制你的手机,然后进一步控制你的汽车。现在,已经有不少黑客试图用类似的方法去劫持像特斯拉这样的智能汽车,让它在行驶过程中出问题。 这只是其中的一个例子,其实,以后这种边界安全的概念将会变得非常含糊。过去,我们说终端安全非常重要。进入IOT时代之后,这个终端将会随着IOT设备数目的增长而无限增长,这就带来了无数个攻击点。所以,这对我们每个做安全的企业都是一个巨大的挑战,当然也是一个巨大的机会。 02 可能发生的物理伤害和人身伤害 以往我们所说的网络攻击:如果被攻击的是计算机,那么可能的后果无非就是损失一些文件;如果被攻击的是手机,那么可能会发生隐私泄露的情况,同时可能会出现在线欺诈。但一旦真正进入IOT时代,IOT设备充分普及,那么这种对IOT设备的攻击就非常可能会带来巨大的物理伤害或者人身伤害。 举个最典型的例子,还是汽车。前面说过,智能汽车存在被攻击的隐患,那么试想一下,如果你的汽车在行驶过程中突然死机,或者突然在高速公路上被叫停会发生什么。恐怕后果会非常严重。这样的情形在美国好莱坞大片中并不少见,比如在布鲁斯·威利斯主演的《虎胆龙威》(第五部)里,恐怖分子通过网络控制了工厂,控制了交通信号灯,控制了电梯甚至控制了别人家的门锁。这种网络攻击的结果自然比信息和个人隐私数据的丢失更为严重。在未来,这将不仅仅发生在一部科幻电影中。 03 用户大数据带来的隐私问题 虽然我们现在都在谈大数据,但实际上,我觉得真正的大数据时代还没有真正到来。PC(个人计算机)时代,我们只有在工作时间才会产生一些数据。到了移动互联网时代,因为智能手机的普及,数据比以前多了很多,除了睡觉,我们都在用手机,各种APP(应用程序)会产生各种数据。但这些相对IOT时代,基本没有可比性。 进入IOT时代之后,IOT设备的数目会是现在的10 倍。现在中国有6.88 亿网民a,假设未来平均一个人用两部手机,一部iPhone(苹果手机)、一部Android(安卓手机),那就是近14 亿个移动设备。除了手机之外,我们每个人身上还会有至少5~10 个智能设备,家里可能还会有20 个左右的智能设备,甚至灯泡、插座这样的小物件都会连到互联网上。所以整个算下来,你会发现未来IOT设备的数目会是现在的10~20 倍,也就是说,几年之后仅仅在中国市场,这种智能终端的数量就可能会达到140 亿~280 亿个,这无疑是一个巨大的数字。 除了数量众多之外,IOT设备还有一个特点。比如今天的运动手环或者智能手表,我们睡觉的时候它也在工作,它会每天24 小时地把我们的数据上传到云端,这就意味着每个人各个维度的数据都会被收集起来,你会发现真到了那个任何个体都没有隐私可言的时代。对科技来说,我们彻底变成了一个透明的数码人,你所有的数据都会被不同的互联网公司拿到它们的服务器上。 本文转自d1net(转载)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册