摘要:
1,变量的声明和定义有什么区别。 声明不分配内存,定义分配内存。变量只能被定义一次,但可以被声明多次。 // 定义 int i; // 声明 extern int i; // 定义(对资源进行了初始化) extern int i = 1; 2,#ifdef、#else、#endif和#ifndef的 阅读全文
摘要:
阅读此文章前,务必读懂:【Example】C++ 标准库 std::thread 与 std::mutex 否则你会像听天书一样懵。(...) 在任何语言的多线程编程当中,必然涉及线程的同步及数据的共享,方式也有很多种。 C++ 标准库当中提供了同步及共享的方案:std::future 与 std: 阅读全文
摘要:
与 Unix 下的 thread 不同的是,C++ 标准库当中的 std::thread 功能更加简单,可以支持跨平台特性。 因此在项目需要跨平台及对多线程简单应用情况下,应优先考虑使用 std::thread。 同时为了使多线程操作更加安全,std::thread 经常与标准库互斥量 std::m 阅读全文
摘要:
回调函数是做为参数传递的一种函数,在早期C样式编程当中,回调函数必须依赖函数指针来实现。 而后的C++语言当中,又引入了 std::function 与 std::bind 来配合进行回调函数实现。 标准库中有大量函数应用到了回调函数,其中 std::sort 就是一个经典例子。 一,回调函数 回调 阅读全文
摘要:
首先,阅读之前要先搞清楚什么是运算符、函数重载。函数重载就是在一个范围内为一个函数声明多个实现方式,函数名必须一致。 那么C++运算符是否可以重载呢?可以!先弄清什么时候需要进行运算符重载: 假设,你有一个类或者结构体,想通过 +、-、*、/ 这种最基本的运算符直接进行计算,又或者想用 ==、|| 阅读全文
摘要:
C++ 不同于 Java,它没有标准的 Object 类型。也就意味着 C++ 并不存在完整的泛型编程概念。 为什么不存在完整的泛型编程概念,放到最后一个例子讲,先讲 “部分的” 泛型编程概念的实现方式:模板。 什么是模板? 引用 Microsoft Docs: 模板是 c + + 中的泛型编程的基 阅读全文
摘要:
C++ 是支持多继承的语言,但是实际项目开发中非必要不要使用多继承以降低代码逻辑的复杂性,当然 C++ 多继承的特性带来一些问题即菱形继承。 当一个类继承了两个来自同父类的子类后,会产生命名空间冲突及资源冗余。 【伪代码】 class Base{ public: int gem = 0; }; cl 阅读全文
摘要:
可以先运行: find . -name "*.log" 确认通配符匹配到的文件是你想删除的文件。再命令执行删除: find . -name "*.log" | xargs rm -r 阅读全文
摘要:
Linux SSH 连接后显示: There is 1 zombie process. 说明当前正在运行的系统当中存在1个僵尸进程正在无意义消耗资源。 僵尸进程的基本概念自行了解:百度百科_僵尸进程 先查找僵尸进程: ps axo stat,ppid,pid,comm | grep -w defun 阅读全文
摘要:
QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator'uiAccess='false'" 将以上那句话添加到 pro 文件即可。编译器 MSVC 适用。应该没有人拿 gcc 开发 Windows 桌面应用吧。。。 阅读全文