上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页
摘要: 做单元测试的时候,为了验证类的私有方法或变量,需要将访问权限都改为public。 为了不改动源代码,可以在编译时,添加宏定义替换权限 CPPFLAGS=-Dprotected=public -Dprivate=public 绝大部分情况下是不会出现问题的。 注意到C++的默认规则,默认权限是priv 阅读全文
posted @ 2022-05-09 13:41 天下太平 阅读(257) 评论(0) 推荐(0)
摘要: epoll既支持水平触发也支持边缘触发,默认是水平触发。 水平触发(LT) 当被监控的文件描述符上有可读写事件发生时,会通知用户程序去读写,他会一直通知用户,如果这个描述符是用户不关心的,它每次都返回通知用户。 读缓冲区不为空时, 读事件触发。写缓冲区不为满时, 写事件触发。 水平触发时,逻辑简单, 阅读全文
posted @ 2022-05-09 10:38 天下太平 阅读(878) 评论(0) 推荐(0)
摘要: git status时报错“fatal:Unable to create".../.git/index.lock”。 一开始因为是权限问题,后来发现是磁盘空间不够了。 删除一些废弃文件后,再次执行git就好了。 阅读全文
posted @ 2022-05-06 15:22 天下太平 阅读(388) 评论(0) 推荐(0)
摘要: call_once是c++11中引入的新特性,用于保证某个函数只调用一次,即使是多线程环境下,它也可以可靠地完成一次函数调用。一般配合once_flag变量。 特别适用于多线程时某个初始化只执行一次的场景。 若调用call_once一切顺利,将会翻转once_flag变量的内部状态,再次调用该函数时 阅读全文
posted @ 2022-05-06 10:40 天下太平 阅读(197) 评论(0) 推荐(0)
摘要: noexcept关键字是c++11之后新增的。 该关键字会告诉编译器,被修饰的函数不会发生异常,有利于编译器对程序做更多的优化。 编译器做代码生成时,胡加一些额外的代码包裹原始代码,当出现异常时可以抛出一些相关的堆栈错误信息,包含:错误位置、错误原因、调用顺序和层级路径等信息。 当使用noexcep 阅读全文
posted @ 2022-05-06 10:22 天下太平 阅读(318) 评论(0) 推荐(0)
摘要: C++11新增的关键字thread_local,表示对象的生命周期属于线程存储期。 线程局部存储(Thread Local Storage,TLS)是一种存储期(storage duration),对象的存储是在线程开始时分配,线程结束时回收,每个线程有该对象自己的实例 如果类的成员函数内定义了 t 阅读全文
posted @ 2022-05-05 16:54 天下太平 阅读(350) 评论(0) 推荐(0)
摘要: 分派/派发 dispatch 变量被声明时的类型叫做变量的静态类型(Static Type)。 变量所引用的对象的真实类型又叫做变量的实际类型(Actual Type)。 根据对象的类型而对方法进行的选择,就是分派(Dispatch)。 分派时期 根据分派生的时期,可以将分派分为两种,静态分派和动态 阅读全文
posted @ 2022-05-05 14:00 天下太平 阅读(180) 评论(0) 推荐(0)
摘要: 只能在堆上分配 class A { public: A() {} void destory() { delete this; } private: ~A() {} }; 编译器在为类对象分配栈空间时,会先检查类的析构函数的访问性,其实不光是析构函数,只要是非静态的函数,编译器都会进行检查。 若是类的 阅读全文
posted @ 2022-04-27 15:12 天下太平 阅读(204) 评论(0) 推荐(0)
摘要: 重载 overload 定义:函数名相同,函数的参数个数、参数类型或参数顺序三者中必须至少有一种不同。调用时,编译器能够判断在哪种情况下调用哪种方法。 阶段:编译时。 目的:把函数本身作为一个概念抽象出来,基于不同形参给出不同实现以实现多态,实现静多态的一种技术。 重写/覆盖 override 定义 阅读全文
posted @ 2022-04-25 09:30 天下太平 阅读(90) 评论(0) 推荐(0)
摘要: 使用<br/>占位,亲测有效 阅读全文
posted @ 2022-04-24 15:15 天下太平 阅读(104) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 13 下一页