Category: C++
All the articles in the category "C++".
-
编译防火墙—— C++ 的 Pimpl惯用法解析
Pimpl(pointer to implementation, 指向实现的指针)是一种常用的,用来对“类的接口与实现”进行解耦的方法。这个技巧可以避免在头文件中暴露私有细节(见下图 1),因此是促进 API 接口与实现保持完全分离的重要机制。但是 Pimpl 并不是严格意义上的设计模式(它是...
-
CMake 入门教程
文章 CMake 语言 15 分钟入门教程 介绍了 CMake 语言的基础知识,本文在此基础上,进一步说明说明如何利用 CMake 生成 Makefile,并实现编译安装功能。 CMake 除了可以生成 Makefile 外,还可以生成以下 IDE 的编译文件: Xcode Visual St...
-
CMake 语言 15 分钟入门教程
cmake 是一个跨平台的编译安装工具,可以用简单的语句来描述所有平台的编译安装过程。 本文介绍 cmake 的基础语法。 第一个例子 使用任意的文本编辑器,输入: 然后保存为 文本文件,执行: 输出: > Hello world! 所有变量都是字符串 在 cmake 中,所有变量都是字符...
-
C++ Lambda 学习笔记
C+中,对于一个对象或一个表达式,如果可以对其使用调用运算符(),则称它是可调用的。即,如果 是可调用的,则可以这样使用: 其中, 是一个逗号分隔的一个或多个参数的列表。 C+中可调用对象除了我们熟悉的函数或函数指针外,还包括函数对象以及 lambda 表达式。 本文重点讲述 lambda ...
-
C++ 函数对象学习笔记
函数对象本质上是一个类对象,它重载了函数调用运算符 。调用运算符的函数体实现函数的功能。 例如,我们定义类 : 类 包含调用运算符的重载,调用运算符的函数体实现了函数的功能:小于操作。 调用运算符的定义第一次看起来有点令人迷惑,因为出现了两个小括号。第一个小括号: 告诉编译器我们在重载调用运...
-
gRPC C++ 入门教程
之前曾经写过 Python 使用 gRPC 收发消息的教程,可以参考文章 《体验 gRPC 那些事儿》。最近计划在 C+项目中使用 gRPC,故写一篇文章来记录一下如何使用 C+语言来实现一个简单的 gRPC 服务端和客户端程序。 本教程需要先安装 gRPC,有关 gRPC 的安装教程可以参考...
-
CLion 实现远程调试
CLion 是 JetBrains IDE 全家桶产品之一,可以用来开发 C/C+项目,而 GDB 则可以用来对 C/C+程序进行调试。 作为一款调试器,GDB 为程序开发人员提供了强大的调试功能,但却需要使用命令来执行调试操作,操作起来不是很方便。(有关 GDB 的使用,可以参考文章《GDB...
-
GDB 调试
GDB 是一个功能强大的调试器,也是 Linux 系统中默认的调试器。GDB 主要提供以下四种功能,这些功能可以方便我们定位程序的 BUG。 启动程序 设置断点 检查程序运行状态,例如查看变量的值 修改程序运行状态,例如修改变量的值 本文简单讲述 GDB 的调试方法。 我们需要调试的程序如下所...
-
记一次程序优化记录
忙了几个月的项目终于在生产环境上上线,虽然接下来还有不少工作需要跟进,但终究不像上段时间那么忙了,因此也就能利用周末的时间,对之前优化程序性能的过程作下记录,也当是个小小的经验总结。 程序的应用场景是往 Redis 写入具有大量记录的二维表,或者从 Redis 读取具有大量记录的二维表数据。由...
-
make命令与makefile文件
一、多个源文件带来的问题 在编写c/c++测试程序时,我们习惯每次修改一处代码,然后就马上编译运行来查看运行的结果。这种编译方式对于小程序来说是没有多大问题的,可对于大型程序来说,由于包含了大量的源文件,如果每次改动一个地方都需要编译所有的源文件,这个简单的直接编译所有源文件方式对程序员来说简...