摘要: 上下文管理器提供了一种申请资源和释放资源的方法,并且能保证离开上下文管理器时,一定会执行释放资源的操作,从语言角度来讲仅可能避免了资源的泄露。 “资源泄漏” 是一个统称,不仅包含了内存泄漏,还包含了文件描述符或句柄泄漏、数据库连接泄漏等,所以后续本文统一使用 “资源泄漏”。 在进入上下文管理器时,先 阅读全文
posted @ 2022-06-23 20:11 店里最会撒谎白玉汤 阅读(47) 评论(0) 推荐(0)
摘要: 装饰器模式( Decorator Pattern )允许向一个现有的事物添加新的功能,同时又不改变其结构。 闭包:能够访问上层局部变量的内层函数 函数内部的局部变量在外部是无法访问的,闭包就是为了可以在函数外部访问函数内部的局部变量或让函数内部变量保存在内存中 def outer(tag): """ 阅读全文
posted @ 2022-06-22 21:41 店里最会撒谎白玉汤 阅读(51) 评论(0) 推荐(0)
摘要: 让函数成为类的友元,让该函数具有和类成员函数相同的访问权限。 friend void func(argument) 在类声明中添加友元函数原型。 虽然友元函数是在类中声明的,但它不是成员函数,不能使用成员运算符来调用。 友元函数虽然不是成员函数,但是它与成员函数具有相同的访问全限。 函数定义不需要类 阅读全文
posted @ 2022-06-20 20:53 店里最会撒谎白玉汤 阅读(87) 评论(0) 推荐(0)
摘要: 运算符重载的函数形式 operator op(argument); op是有效的运算符 #include<iostream> using std::cout; using std::cin; using std::endl; class Complex{ public: float real; fl 阅读全文
posted @ 2022-06-20 16:49 店里最会撒谎白玉汤 阅读(30) 评论(0) 推荐(0)
摘要: 创建对象 class A{ public: int x; A(); A(int); }; //1 A a1; // 使用无参构造 //2 有参构造创建对象 A a2(10); // 第一种方式 A a3 = A(20); // 第二种方式 // 第二种方式,编译器可能有两种方式执行 // 与第一种相 阅读全文
posted @ 2022-06-20 16:10 店里最会撒谎白玉汤 阅读(28) 评论(0) 推荐(0)
摘要: namespace TANG{ int height; int weight; } namespace GAO{ int height; int weight; } // 名称空间是开放的,可以把名称加入到已有名称空间中 name space TANG{ void func(); } 名称空间提供一 阅读全文
posted @ 2022-06-18 21:06 店里最会撒谎白玉汤 阅读(31) 评论(0) 推荐(0)
摘要: 通常new 负责在堆中找到一个满足要求的内存卡,new运算符还有另一种变体,被称为定位new运算符可以使用指定的位置。可以使用这种特性来设置内存关联规程、处理需要通过特定地址进行访问的硬件或在特定位置创建对象。要使用定位new,需要包含头文件new。 char buffer[100]; int *p 阅读全文
posted @ 2022-06-18 17:28 店里最会撒谎白玉汤 阅读(294) 评论(0) 推荐(0)
摘要: 1. volatile 表明即使程序没用对内存单元进行修改,其值也可能发生变化。 比如一个指针指向一个硬件位置,硬件可能会修改指针所指向的值。 两个 程序互相影响共享数据。 如果编译器发现几条语句两次使用了某个变量,编译不会让程序查找这个值两次,而是将这个值缓存到寄存器中。这种优化假设变量的值在两次 阅读全文
posted @ 2022-06-18 17:02 店里最会撒谎白玉汤 阅读(60) 评论(0) 推荐(0)
摘要: 自动存储连续性:块中的局部变量,程序进入块时被创建,离开块时被销毁。 静态存储连续性:static定义的变量和全局变量,程序运行期间都存在。 线性存储连续性:变量使用关键字thread_local声明时,其生命周期与所属线程一样长。 动态存储连续性:用new运算符分配的内存一直存在知道delete运 阅读全文
posted @ 2022-06-17 13:29 店里最会撒谎白玉汤 阅读(74) 评论(0) 推荐(0)
摘要: 函数模板 通用的函数描述,通过泛型来定义函数。 template <typename AnyType> void swap(AnyType &a, AnyType &b) { AnyType temp = a; a = b; b = temp; } 创建模板在函数原型前使用 template ; 模 阅读全文
posted @ 2022-06-16 22:33 店里最会撒谎白玉汤 阅读(37) 评论(0) 推荐(0)