- Protobuf 还常用于通讯协议、服务端数据交换场景。那么在这个示例中,我们将实现一个网络版本的 通讯录,模拟实现客户端与服务端的交互,通过 Protobuf 来实现各端之间的协议序列化。 需求如下: 客户端可以选择对通讯录进行以下操作:新增一个联系人删除一个联系人查询通讯录列表查询一个联系人的详细信息服务端提供 增 删 查 能力,并需要持久化通讯录。客户端、服务端间的交互数据来使用Pro... Protobuf 还常用于通讯协议、服务端数据交换场景。那么在这个示例中,我们将实现一个网络版本的 通讯录,模拟实现客户端与服务端的交互,通过 Protobuf 来实现各端之间的协议序列化。 需求如下: 客户端可以选择对通讯录进行以下操作:新增一个联系人删除一个联系人查询通讯录列表查询一个联系人的详细信息服务端提供 增 删 查 能力,并需要持久化通讯录。客户端、服务端间的交互数据来使用Pro...
- 对 ProtoBuf 的完整学习,将使⽤ 项⽬推进 的⽅式完成教学:即对于 ProtoBuf 知识内容的展开,会对⼀个项⽬进⾏⼀个版本⼀个版本的升级去讲解 ProtoBuf 对应的知识点。 在后续的内容中,将会实现⼀个通讯录项⽬。对通讯录⼤家应该都不陌⽣,⼀般,通讯录中包含了⼀批的联系⼈,每个联系⼈⼜会有很多的属性,例如姓名、电话等等。随着对通讯录项⽬的升级,我们对 ProtoBuf 的学习... 对 ProtoBuf 的完整学习,将使⽤ 项⽬推进 的⽅式完成教学:即对于 ProtoBuf 知识内容的展开,会对⼀个项⽬进⾏⼀个版本⼀个版本的升级去讲解 ProtoBuf 对应的知识点。 在后续的内容中,将会实现⼀个通讯录项⽬。对通讯录⼤家应该都不陌⽣,⼀般,通讯录中包含了⼀批的联系⼈,每个联系⼈⼜会有很多的属性,例如姓名、电话等等。随着对通讯录项⽬的升级,我们对 ProtoBuf 的学习...
- 引用在C++中扮演着重要的角色。它允许我们为已存在的变量创建一个别名,通过这个别名,我们可以直接访问和操作原始变量。这一特性不仅简化了代码,提高了代码的可读性,还带来了性能上的优势。因为引用本身不是一种数据类型,不占用存储单元,所以使用引用可以减少数据的复制,降低内存占用,提高程序的执行效率。 引用在C++中扮演着重要的角色。它允许我们为已存在的变量创建一个别名,通过这个别名,我们可以直接访问和操作原始变量。这一特性不仅简化了代码,提高了代码的可读性,还带来了性能上的优势。因为引用本身不是一种数据类型,不占用存储单元,所以使用引用可以减少数据的复制,降低内存占用,提高程序的执行效率。
- 在C++中,缺省参数是一项非常实用的特性,它允许函数在调用时省略某些参数的值,这些省略的参数将自动采用函数声明中指定的默认值。这一特性不仅提高了代码的灵活性,还使得函数的使用更加简洁明了。本文将深入探讨C++缺省参数的概念、使用方法、注意事项以及最佳实践。 在C++中,缺省参数是一项非常实用的特性,它允许函数在调用时省略某些参数的值,这些省略的参数将自动采用函数声明中指定的默认值。这一特性不仅提高了代码的灵活性,还使得函数的使用更加简洁明了。本文将深入探讨C++缺省参数的概念、使用方法、注意事项以及最佳实践。
- 在C++编程中,函数重载是一项基础而强大的特性,它允许我们在同一作用域内定义多个具有相同名称但参数列表不同的函数。这一特性不仅极大地丰富了C++语言的表现力,还为我们编写更加灵活和可读的代码提供了可能。特别是在处理大型项目或设计复杂的类结构时,函数重载的重要性更是凸显无疑。它能够帮助我们更好地组织代码,实现多态性,以及提供清晰、直观的接口。本文将深入探讨C++函数重载的基本概念、实现方式、规则与限 在C++编程中,函数重载是一项基础而强大的特性,它允许我们在同一作用域内定义多个具有相同名称但参数列表不同的函数。这一特性不仅极大地丰富了C++语言的表现力,还为我们编写更加灵活和可读的代码提供了可能。特别是在处理大型项目或设计复杂的类结构时,函数重载的重要性更是凸显无疑。它能够帮助我们更好地组织代码,实现多态性,以及提供清晰、直观的接口。本文将深入探讨C++函数重载的基本概念、实现方式、规则与限
- C++命名空间的引入极大地增强了C++语言在大型项目和模块化编程方面的能力。它是C++语言的一个重要特性,对于现代软件开发具有不可或缺的作用。 C++命名空间的引入极大地增强了C++语言在大型项目和模块化编程方面的能力。它是C++语言的一个重要特性,对于现代软件开发具有不可或缺的作用。
- 在C++面向对象编程中,虚函数机制是实现多态的核心,而构造函数和析构函数作为对象生命周期管理的关键函数,与虚函数的结合使用存在许多需要注意的细节。本文将深入探讨这些特殊函数能否成为虚函数、使用场景及底层原理。 1. 析构函数可以是虚函数吗?什么场景下这样做?答案:可以,而且当该类准备被作为基类(即会被其他类继承)时,其析构函数通常应该被声明为虚函数。 关键场景:通过基类指针删除派生类对象这是... 在C++面向对象编程中,虚函数机制是实现多态的核心,而构造函数和析构函数作为对象生命周期管理的关键函数,与虚函数的结合使用存在许多需要注意的细节。本文将深入探讨这些特殊函数能否成为虚函数、使用场景及底层原理。 1. 析构函数可以是虚函数吗?什么场景下这样做?答案:可以,而且当该类准备被作为基类(即会被其他类继承)时,其析构函数通常应该被声明为虚函数。 关键场景:通过基类指针删除派生类对象这是...
- 在编程世界中,数据类型和它们的大小是软件开发过程中非常关键的概念。每一种数据类型都由其内存占用大小来定义,不同语言之间的差异有时会让开发者困惑。尤其是在微软的编程生态系统中,C/C++ 和 C# 对 long 类型的定义似乎不一致:在 Win64 平台上,C/C++ 将 long 定义为 32 位,而微软的 C# 将 long 解释为 64 位。 Win64 平台 C/C++ 与微软 C# ... 在编程世界中,数据类型和它们的大小是软件开发过程中非常关键的概念。每一种数据类型都由其内存占用大小来定义,不同语言之间的差异有时会让开发者困惑。尤其是在微软的编程生态系统中,C/C++ 和 C# 对 long 类型的定义似乎不一致:在 Win64 平台上,C/C++ 将 long 定义为 32 位,而微软的 C# 将 long 解释为 64 位。 Win64 平台 C/C++ 与微软 C# ...
- LVGL 是一个轻量级的嵌入式图形库,它用于微控制器和其他资源受限的环境中。为了实现面向对象的设计,LVGL 的开发团队选择使用 C 语言,而不是直接使用 C++,乍一看有点费解。## C 语言在嵌入式系统中的地位与特性在嵌入式系统的开发中,C 语言是开发人员最常用的语言之一。它的普及源于以下几个重要特性:1. **控制力和低级访问**:C 语言提供了对内存的直接访问和指针操作,这对于嵌入式... LVGL 是一个轻量级的嵌入式图形库,它用于微控制器和其他资源受限的环境中。为了实现面向对象的设计,LVGL 的开发团队选择使用 C 语言,而不是直接使用 C++,乍一看有点费解。## C 语言在嵌入式系统中的地位与特性在嵌入式系统的开发中,C 语言是开发人员最常用的语言之一。它的普及源于以下几个重要特性:1. **控制力和低级访问**:C 语言提供了对内存的直接访问和指针操作,这对于嵌入式...
- 在C++这类强大的系统级编程语言中,设计模式并非空中楼阁的理论,而是解决特定复杂工程问题的利器。它们提供了经过验证的最佳实践方案,能够显著提升代码的可维护性、可扩展性、复用性和灵活性。本文将深入探讨C++开发中最常用的一些设计模式,并结合具体场景说明它们解决了什么问题。 1. 单例模式 (Singleton Pattern)核心思想:确保一个类只有一个实例,并提供一个全局访问点。解决的问题:... 在C++这类强大的系统级编程语言中,设计模式并非空中楼阁的理论,而是解决特定复杂工程问题的利器。它们提供了经过验证的最佳实践方案,能够显著提升代码的可维护性、可扩展性、复用性和灵活性。本文将深入探讨C++开发中最常用的一些设计模式,并结合具体场景说明它们解决了什么问题。 1. 单例模式 (Singleton Pattern)核心思想:确保一个类只有一个实例,并提供一个全局访问点。解决的问题:...
- 常量正确性(Const Correctness) 是编写健壮、安全且易于理解的 C++ 代码的基石。它并非一个可选的特性,而是一种核心设计哲学。它通过类型系统向编译器和其他程序员传达你的设计意图:“这个对象或数据不应被修改”。正确地使用 const 可以避免意外的修改,使代码更安全;它可以作为文档,提高代码可读性;并且它能为编译器提供更多的优化机会。本文将深入探讨 const 在不同语境下的... 常量正确性(Const Correctness) 是编写健壮、安全且易于理解的 C++ 代码的基石。它并非一个可选的特性,而是一种核心设计哲学。它通过类型系统向编译器和其他程序员传达你的设计意图:“这个对象或数据不应被修改”。正确地使用 const 可以避免意外的修改,使代码更安全;它可以作为文档,提高代码可读性;并且它能为编译器提供更多的优化机会。本文将深入探讨 const 在不同语境下的...
- 从一行简单的代码到可执行程序,C++ 经历了怎样奇妙的转化之旅?本文将深入探索编译过程的每个细节,揭示头文件与源文件的协作奥秘。当我们写下经典的 “Hello World” 程序时,可能很少思考这简单代码背后的复杂过程:// main.cpp#include <iostream>int main() { std::cout << "Hello World!" << std::endl;... 从一行简单的代码到可执行程序,C++ 经历了怎样奇妙的转化之旅?本文将深入探索编译过程的每个细节,揭示头文件与源文件的协作奥秘。当我们写下经典的 “Hello World” 程序时,可能很少思考这简单代码背后的复杂过程:// main.cpp#include <iostream>int main() { std::cout << "Hello World!" << std::endl;...
- 1. std::function 的成本std::function 是一个通用的、类型擦除的函数包装器,它非常方便,可以存储和调用任何可调用对象(函数、lambda、函数对象、bind表达式等)。然而,这种灵活性是有代价的。 主要成本来源:a) 类型擦除(Type Erasure)的开销这是 std::function 最根本的成本。为了实现“可以容纳任何可调用对象”的目标,它必须在编译时... 1. std::function 的成本std::function 是一个通用的、类型擦除的函数包装器,它非常方便,可以存储和调用任何可调用对象(函数、lambda、函数对象、bind表达式等)。然而,这种灵活性是有代价的。 主要成本来源:a) 类型擦除(Type Erasure)的开销这是 std::function 最根本的成本。为了实现“可以容纳任何可调用对象”的目标,它必须在编译时...
- 一、AST抽象语法树遍历:解码程序结构的钥匙 1.1核心作用与可视化理解ABSTRACT S YNTAX T REE(抽象语法树)是源代码的结构化表示,它剥离了空白符、注释等无关信息,保留了程序的逻辑骨架。如同建筑师的设计蓝图,AST清晰展示了变量声明、函数调用、控制流等关键元素的关系。例如表达式a + b * c会被解析为:根节点为+,左子节点是a,右子节点是*,其左右子节点分别... 一、AST抽象语法树遍历:解码程序结构的钥匙 1.1核心作用与可视化理解ABSTRACT S YNTAX T REE(抽象语法树)是源代码的结构化表示,它剥离了空白符、注释等无关信息,保留了程序的逻辑骨架。如同建筑师的设计蓝图,AST清晰展示了变量声明、函数调用、控制流等关键元素的关系。例如表达式a + b * c会被解析为:根节点为+,左子节点是a,右子节点是*,其左右子节点分别...
- 信号处理的历史包袱与现代困境信号机制源于早期Unix系统的进程间通信需求,是一个深深植根于C语言和操作系统底层的概念。然而,当这一机制被带入C++的现代化开发环境中时,其固有的设计缺陷与C++的抽象理念产生了根本性冲突。 深入技术细节:信号处理的本质问题 1. 执行上下文的不确定性信号处理函数在执行时处于一个异步中断上下文,这与正常的函数调用栈完全不同:#include <signal.h... 信号处理的历史包袱与现代困境信号机制源于早期Unix系统的进程间通信需求,是一个深深植根于C语言和操作系统底层的概念。然而,当这一机制被带入C++的现代化开发环境中时,其固有的设计缺陷与C++的抽象理念产生了根本性冲突。 深入技术细节:信号处理的本质问题 1. 执行上下文的不确定性信号处理函数在执行时处于一个异步中断上下文,这与正常的函数调用栈完全不同:#include <signal.h...
上滑加载中
推荐直播
-
码道新技能,AI 新生产力——从自动视频生成到开源项目解析2026/04/08 周三 19:00-21:00
童得力-华为云开发者生态运营总监/何文强-无人机企业AI提效负责人
本次华为云码道 Skill 实战活动,聚焦两大 AI 开发场景:通过实战教学,带你打造 AI 编程自动生成视频 Skill,并实现对 GitHub 热门开源项目的智能知识抽取,手把手掌握 Skill 开发全流程,用 AI 提升研发效率与内容生产力。
回顾中 -
华为云码道:零代码股票智能决策平台全功能实战2026/04/18 周六 10:00-12:00
秦拳德-中软国际教育卓越研究院研究员、华为云金牌讲师、云原生技术专家
利用Tushare接口获取实时行情数据,采用Transformer算法进行时序预测与涨跌分析,并集成DeepSeek API提供智能解读。同时,项目深度结合华为云CodeArts(码道)的代码智能体能力,实现代码一键推送至云端代码仓库,建立起高效、可协作的团队开发新范式。开发者可快速上手,从零打造功能完整的个股筛选、智能分析与风险管控产品。
回顾中 -
华为云码道全新升级,多会话并行与多智能体协作2026/05/08 周五 19:00-21:00
王一男-华为云码道产品专家;张嘉冉-华为云码道工程师;胡琦-华为云HCDE;程诗杰-华为云HCDG
华为云码道4月份版本全新升级,此次直播深度解读4月份产品特性,通过“特性解读+实操演示+实战案例+设计创新”的组合,全方位展现码道在多会话并行与多智能体协作方面的能力,赋能开发者提升效率
正在直播
热门标签