![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
文章平均质量分 68
eric_dma
这个作者很懒,什么都没留下…
展开
-
SHA-1哈希算法简介
该算法的主要思想是将任意长度的输入数据(通常称为“消息”或“明文”)通过一系列复杂的数学和逻辑运算,转换为一个固定长度(通常为160位,即20字节或40个十六进制数)的输出值,这个输出值被称为“哈希值”、“消息摘要”或“散列值”。由于SHA-1能够生成固定长度的哈希值,因此它被广泛用于验证数据的完整性和生成数字签名。然而,随着计算机技术的发展,SHA-1算法的安全性已经受到了一定的挑战,因此在需要更高安全性的应用中,建议使用更安全的哈希算法,如SHA-256或SHA-3。原创 2024-06-12 10:38:12 · 288 阅读 · 0 评论 -
内存管理【侯捷】——— const和new
内存管理【侯捷】——— const和new相关资料:书籍:《Small Memory Software》《Modern C++ Design》C++ Applications| | | C++ Library| | C++ primitives(new,new[], operator new)| CRT(malloc/free)OS API (HeapAlloc, VitualAlloc)...原创 2022-09-23 16:54:22 · 163 阅读 · 0 评论 -
C++【侯捷】——— const和new
C++【侯捷】——— constconst只能放在成员函数的后面,不能放在全局函数的后面。const object(data不可以改变)non-const object(data可以改)const member functions(函数保证不改数据)可以可以non-const member functions(函数可能改数据)不可以可以错误使用:常量对...原创 2020-04-23 20:14:40 · 299 阅读 · 0 评论 -
C++【侯捷】——— 虚指针和虚表动态绑定
C++【侯捷】——— 虚指针和虚表动态绑定虚函数的两种用法虚指针和虚表this pointer虚函数的两种用法继承和组合中构造和析构,可以通过内存的角度进行分析。继承关系是构造父类被包含在子类中,所以构造必须由内而外,析构方向相反。组合关系是拥有的关系,构造函数也是由内而外,析构方向相反。继承和组合的构造/析构函数后面编译器会加上父类的构造函数:Container::Container...原创 2020-04-15 21:14:44 · 338 阅读 · 0 评论 -
C++【侯捷】——— 可变参数、ranged-base、auto和引用
C++【侯捷】——— 可变参数、ranged-base、auto和引用variadic templatesautoranged-base forreference最好是都要了解下,知道标准库都给了什么方法,自己试试,在使用的时候就知道有哪些了,不用自己再傻傻的去写已经有的。查看不同的编译,了解不同版本所支持的C++版本,两种方式:1、通过网页上查,2、打印__cplusplus的宏。vari...原创 2020-04-14 20:08:06 · 243 阅读 · 0 评论 -
C++【侯捷】——— 成员模板、模板特化、模板模板参数
C++【侯捷】——— 成员模板成员模板模板特化自己写的程序最好用namespace包起来,不要直接使用全局的using namespace,尤其是代码量比较多的大程序。成员模板类模板在使用的时候,后面要加上模板参数,类型。函数模板不需要加上模板参数,因为有参数,编译器会做实参推导。成员模板模板中的模板,往往在构造函数中使用的多,为了使构造函数更有弹性。在模板中包含了一个模板定义。te...原创 2020-04-11 14:59:18 · 306 阅读 · 0 评论 -
C++【侯捷】——— 转换函数
C++【侯捷】——— 转换函数设计一个分数的类,就是分子除以分母,返回的是double类型。所以在这个类的调用地方转换成double类型。这里面重点是operator的函数,返回类型不用写,就是名称中的double。总结下:1、没有返回值,返回类型在重载的名称中2、没有参数3、是const的...原创 2020-04-09 20:43:42 · 242 阅读 · 0 评论 -
C++【侯捷】——— 委托和继承
C++【侯捷】——— 委托和继承CompositePrototypeComposite面向对象的设计主要是看怎么组织自己的类。class Primitive : public Component{public:Primitive(int val): Component(val) {};};class Component{int value;public:Component(...原创 2020-04-07 21:02:27 · 399 阅读 · 0 评论 -
C++【侯捷】——— 继承和虚函数
C++【侯捷】——— 继承和虚函数虚函数继承+复合的构造和析构观察者模式虚函数函数的继承,继承的是调用权。成员函数分成三类:1、非虚函数:不希望子类deriverd class重新定义override他,2、virtual函数:希望派生类重新定义,且已经有个默认定义3、纯虚函数:没有定义,希望子类一定要重新定义父类是写公共的功能,不能确定的功能用虚函数来实现。空函数和纯虚函数不一样,...原创 2020-03-29 21:46:51 · 359 阅读 · 0 评论 -
C++【侯捷】——— 复合与继承
C++【侯捷】——— 复合与继承CompositionDelegationInheritance主要讲类和类之间的关系,不是单类的设计,这个就叫做面向对象的编程。Composition复合,表示has-a。template <class T, class Sequence = deque >class queue {…protected:Sequence c;pub...原创 2020-03-28 14:18:09 · 175 阅读 · 0 评论 -
C++【侯捷】——— 类模板、函数模板
C++【侯捷】——— 类模板、函数模板staticSingleton设计模式cout模板namespace其他这里主要讲的是this指针,尤其时候多个类之间相互调用的时候一定要搞清楚this指针。如果函数只有一份,对象有好多份,一个函数要处理多个成员变量,区分上就是靠this指针来。static加了static的成员不再单独属于一个对象,他是单独的保存在内存的某个地址,也就只有一份。所以在...原创 2020-03-27 20:09:26 · 273 阅读 · 0 评论 -
C++【侯捷】——— 堆、栈与内存管理
C++【侯捷】——— 堆、栈与内存管理StackHeapnewdeleteVC中内存分配Stackclass Complex { ... };...Complex c3(1,2);void main(){ Complex c1(1,2); static Complex c2(1,2); Complex* p = new Complex(3); //heap}...原创 2020-03-26 19:37:59 · 192 阅读 · 0 评论 -
C++【侯捷】——三大函数拷贝构造、拷贝复制、析构
C++——三大函数拷贝构造、拷贝复制、析构构造函数和析构函数:拷贝构造函数拷贝赋值函数以String类为例子,介绍三大函数的实现和原理,自己写类的时候可以参考String的这三个函数的流程和要点来写。String s1();String s2("hello"); //构造函数String s3(s1); //拷贝构造s3 = s2; //赋值操作,拷贝赋值两个拷贝会有不同对应的...原创 2020-03-25 23:27:37 · 308 阅读 · 0 评论 -
C++【侯捷】——— 智能指针
C++【侯捷】——— 智能指针pointer-like classesfunction-like classespointer-like classes做出来的类更像指针,叫智能指针,是为了,使用指针的一些特性,同时比指针会多做一些事情。template<class T>class shared_ptr{public: T& operator*() const...原创 2020-04-10 08:32:05 · 861 阅读 · 0 评论