[C++自我精讲]基础系列五 隐式转换和显示转换 0 前言 1)C++的类型转换分为两种,一种为隐式转换,另一种为显式转换. 2)C++中应该尽量不要使用转换,尽量使用显式转换来代替隐式转换. 1 隐式转换 定义:隐式转换是系统跟据程序的需要而自动转换的. 1)C++类型(char,int,float,long,double等)的隐式转换: 算术表达式隐式转换顺序为: 1.char - int - long - double 2.float - double //1)算术表达式 ; double…
[C++自我精讲]基础系列二 const 0 前言 分三部分:const用法.const和#define比较.const作用. 1 const用法 const常量:const可以用来定义常量,不可改变,const常量在定义时必须初始化(extern修饰时是特例). //const常量 ; extern const int Number; const指针: 1)const出现在*号左边,表示被指物是常量(不可以改变):注意:const写在类型之前和写在类型之后且*号之前是一样的. 2)const出…
[C++自我精讲]基础系列四 static 0 前言 变量的存储类型:存储类型按变量的生存期划分,分动态存储方式和静态存储方式. 1)动态存储方式的变量,生存期为变量所在的作用域.即程序运行到此变量时才为其分配存储空间,作用域结束时,会自动收回为其分配的存储空间. 2)静态存储方式的变量,生存期为整个程序执行的过程.即程序开始时就为其分配存储空间,程序结束时,才会收回为其分配的存储空间. 4种变量的存储类型: 1)自动类型(auto):动态存储方式的变量,局部变量,auto常常省略. 2)寄存器…
[C++自我精讲]基础系列一 指针与引用   一 前言   指针.引用.指针与引用区别. 二 指针   变量:代码中常常通过定义变量来申请并命名存储空间,并通过变量的名字来使用这段存储空间. //变量 int nNum; //声明名字为nNum的int型存储空间 nNum = ; //nNum存储值100 nNum = ; //改变nNum存储值200 指针:又叫一级指针,用来指示一个内存地址的变量.对于一个类型T(int.char.folat...),T*就是指向T的指针类型,一个T*类型的变…
[C++自我精讲]基础系列六 PIMPL模式 0 前言 很实用的一种基础模式. 1 PIMPL解释 PIMPL(Private Implementation 或 Pointer to Implementation)是通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏. 2 PIMPL优点 举例: //x.h class X { public: void Fun(); private: int i; //add int i; }; //c.h #include <x.h> class…
[C++自我精讲]基础系列三 重载 0 前言 分二部分:函数重载,操作符重载. 1 函数重载 函数重载:指在同一名字空间中,函数名称相同,参数类型.顺序或数量不同的一类函数,同一函数名的函数能完成不同功能. //非函数重载,只是返回值不一样 void Fun(int i); int Fun(int i); //非函数重载,不在同一名字空间 namespace A { int Add(int i, int j); }; namespace B { float Add(float i, float…
模板的实例化指函数模板(类模板)生成模板函数(模板类)的过程.对于函数模板而言,模板实例化之后,会生成一个真正的函数.而类模板经过实例化之后,只是完成了类的定义,模板类的成员函数需要到调用时才会被初始化.模板的实例化分为隐式实例化和显示实例化. 对函数模板的使用而言,分为两种调用方式,一种是显示模板实参调用(显示调用),一种是隐式模板实参调用(隐式调用).对于类模板的使用而言,没有隐式模板实参和显式模板实参使用的说法,因为类模板的使用必须显示指明模板实参.各个概念请勿混淆. 1.隐式实例化 1.…
https是如何实现安全通信的 如果有不正确的地方,还望指出! web基础系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 回顾 总结几个概念(具体描述可以看上一篇文章) 数字签名和数字证书的应用 场景是这样的:rose给jiajun写情书 刚开始用非对称加密的方式,rose用jiajun的公钥对情书进行加密,那么这样的话,如果Billy截获到情书,也无法对情书进行解密,因为只有jiajun有私钥,除非私钥泄露了 jiajun收到,要回信给rose,这个时候jiajun要…
在正式进入scalaz讨论前我们需要理顺一些基础的scalaz结构组成概念和技巧.scalaz是由即兴多态(ad-hoc polymorphism)类型(typeclass)组成.scalaz typeclass在scala中的应用有赖于scala compiler的一项特别功能:隐式转换(implicit conversion),使程序表述更精简.由于隐式转换是一项compiler功能,在程序编译(compile)的时候是由compiler来进行类型转换代码的产生和替代的. 让我们先了解一下作…
高精度的数据类型转换为低精度的数据类型是显示转换,低精度的转换为高精度的是隐式转换. 温馨提示:不能说强制类型转换是从低精度到高精度. int a=666;float b=(float)a: 由a到b的转换是低精度到高精度的转换,为隐式转换,但是也加了强制转换(float),当然不加也是对的. 1.隐式转换示例: using System; using System.Collections.Generic; using System.Linq; using System.Text; using…