- 本案例将指导开发者如何使用鲲鹏DevKit代码迁移工具,以smartdenovo软件包为待迁移案例展示C语言的源码快速迁移过程,达到快速完成C&C++语言源码迁移的实验目的。 本案例将指导开发者如何使用鲲鹏DevKit代码迁移工具,以smartdenovo软件包为待迁移案例展示C语言的源码快速迁移过程,达到快速完成C&C++语言源码迁移的实验目的。
- *在C++的世界里,手动内存管理是一把双刃剑。它提供了无与伦比的灵活性,却也布满了致命的陷阱。本文将深入探讨一个经典且危险的问题:new/delete与new[]/delete[]的错误匹配。 前言:C++内存管理的基本规则在C++中,我们使用new和delete来动态分配和释放单个对象的内存,而使用new[]和delete[]来管理对象数组。语言规范明确要求这些操作符必须配对使用:// 单... *在C++的世界里,手动内存管理是一把双刃剑。它提供了无与伦比的灵活性,却也布满了致命的陷阱。本文将深入探讨一个经典且危险的问题:new/delete与new[]/delete[]的错误匹配。 前言:C++内存管理的基本规则在C++中,我们使用new和delete来动态分配和释放单个对象的内存,而使用new[]和delete[]来管理对象数组。语言规范明确要求这些操作符必须配对使用:// 单...
- 在C++编程中,static关键字有多种用法,其中静态局部变量的行为往往让开发者感到困惑。为什么它只在第一次执行时初始化?背后的原理是什么?这篇文章将深入探讨这个看似简单却蕴含深意的特性。 什么是静态局部变量?静态局部变量是在函数内部声明的静态变量,它具有以下特性:void example() { static int count = 0; // 静态局部变量 count++;... 在C++编程中,static关键字有多种用法,其中静态局部变量的行为往往让开发者感到困惑。为什么它只在第一次执行时初始化?背后的原理是什么?这篇文章将深入探讨这个看似简单却蕴含深意的特性。 什么是静态局部变量?静态局部变量是在函数内部声明的静态变量,它具有以下特性:void example() { static int count = 0; // 静态局部变量 count++;...
- 在C++编程语言中,友元是一种特殊的访问控制机制,它允许一个类或函数访问另一个类的私有成员。 友元关系可以是函数与类之间,也可以是类与类之间。友元机制虽然增强了类的灵活性,但也破坏了封装性,因此在使用时需要谨慎。 在C++编程语言中,友元是一种特殊的访问控制机制,它允许一个类或函数访问另一个类的私有成员。 友元关系可以是函数与类之间,也可以是类与类之间。友元机制虽然增强了类的灵活性,但也破坏了封装性,因此在使用时需要谨慎。
- 在 C++ 编程的世界里,内存管理犹如大厦之基石,至关重要。有效的内存管理不仅关乎程序的性能,更与程序的稳定性和安全性紧密相连。错误的内存操作可能引发难以察觉的漏洞,甚至导致程序崩溃。C++ 赋予了程序员精细掌控内存的能力,从变量的存储分配到动态内存的申请与释放,每一个环节都充满挑战与机遇。 本文将深入探讨 C++ 内存管理的核心概念、常用技术以及最佳实践,为你揭开高效内存管理的神秘面纱。 在 C++ 编程的世界里,内存管理犹如大厦之基石,至关重要。有效的内存管理不仅关乎程序的性能,更与程序的稳定性和安全性紧密相连。错误的内存操作可能引发难以察觉的漏洞,甚至导致程序崩溃。C++ 赋予了程序员精细掌控内存的能力,从变量的存储分配到动态内存的申请与释放,每一个环节都充满挑战与机遇。 本文将深入探讨 C++ 内存管理的核心概念、常用技术以及最佳实践,为你揭开高效内存管理的神秘面纱。
- 在C++中,作用域限定符(Scope Resolvers)主要用于访问特定作用域中的成员,特别是在处理类、命名空间(Namespace)等复杂结构时非常有用。它们帮助编译器确定某个标识符(如变量名、函数名等)的精确作用域,从而避免命名冲突和歧义。 在C++中,作用域限定符(Scope Resolvers)主要用于访问特定作用域中的成员,特别是在处理类、命名空间(Namespace)等复杂结构时非常有用。它们帮助编译器确定某个标识符(如变量名、函数名等)的精确作用域,从而避免命名冲突和歧义。
- 在C++编程中,类和对象是面向对象编程(OOP)的基石。类是一种自定义的数据类型,它允许我们将数据(成员变量)和操作数据的方法(成员函数)封装在一起。对象则是类的实例,它根据类的定义被创建,并可以执行类中定义的操作。 本文将深入探讨C++中类和对象的基本概念。 在C++编程中,类和对象是面向对象编程(OOP)的基石。类是一种自定义的数据类型,它允许我们将数据(成员变量)和操作数据的方法(成员函数)封装在一起。对象则是类的实例,它根据类的定义被创建,并可以执行类中定义的操作。 本文将深入探讨C++中类和对象的基本概念。
- 问题的本质:对象身份与内存布局要理解为什么C++多态必须使用指针或引用,我们需要从底层的内存布局和对象身份机制入手。 一、对象切片:值语义的致命缺陷 直接赋值导致的对象切片Derived derived; // 派生类对象,包含Base部分和Derived部分Base base = derived; // 对象切片:只拷贝Base部分// 内存布局对比:// derived: [vp... 问题的本质:对象身份与内存布局要理解为什么C++多态必须使用指针或引用,我们需要从底层的内存布局和对象身份机制入手。 一、对象切片:值语义的致命缺陷 直接赋值导致的对象切片Derived derived; // 派生类对象,包含Base部分和Derived部分Base base = derived; // 对象切片:只拷贝Base部分// 内存布局对比:// derived: [vp...
- C++以其强大的灵活性和零开销抽象原则而闻名,但这份强大也伴随着复杂性。对象切片(Object Slicing)便是其中一个典型的“陷阱”,它看似简单,却能导致极其隐蔽和危险的程序错误。本文将深入剖析对象切片的原理、危害,并通过一个经典的危险案例揭示其致命之处。 一、什么是对象切片?对象切片是指当派生类(Derived Class)对象被赋值给基类(Base Class)对象时,派生类所特有... C++以其强大的灵活性和零开销抽象原则而闻名,但这份强大也伴随着复杂性。对象切片(Object Slicing)便是其中一个典型的“陷阱”,它看似简单,却能导致极其隐蔽和危险的程序错误。本文将深入剖析对象切片的原理、危害,并通过一个经典的危险案例揭示其致命之处。 一、什么是对象切片?对象切片是指当派生类(Derived Class)对象被赋值给基类(Base Class)对象时,派生类所特有...
- 1. 对象切片的核心机制 1.1 切片的发生条件对象切片(Object Slicing)发生在派生类对象向基类对象赋值或传值时,编译器仅复制基类子对象部分,派生类特有成员被丢弃。class Base {public: int base_data; virtual void func() { cout << "Base" << endl; }};class Derived : p... 1. 对象切片的核心机制 1.1 切片的发生条件对象切片(Object Slicing)发生在派生类对象向基类对象赋值或传值时,编译器仅复制基类子对象部分,派生类特有成员被丢弃。class Base {public: int base_data; virtual void func() { cout << "Base" << endl; }};class Derived : p...
- 引言:一个反直觉的行为在C++面向对象编程中,多态是我们依赖的核心特性之一。然而,在对象的生命周期的两个关键阶段——构造和析构过程中,多态行为却表现出与我们直觉相悖的特性。本文将深入探讨这一陷阱,分析其根源,并提供最佳实践方案。 问题重现:虚函数在构造/析构中的异常行为考虑以下代码示例:#include <iostream>#include <memory>class Base {publ... 引言:一个反直觉的行为在C++面向对象编程中,多态是我们依赖的核心特性之一。然而,在对象的生命周期的两个关键阶段——构造和析构过程中,多态行为却表现出与我们直觉相悖的特性。本文将深入探讨这一陷阱,分析其根源,并提供最佳实践方案。 问题重现:虚函数在构造/析构中的异常行为考虑以下代码示例:#include <iostream>#include <memory>class Base {publ...
- 引用概念:引用不是新定义一个变量,而是个已存在变量取了一个别名(外号),编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间 比如:李逵,在家称为"铁牛",江湖上人称"黑旋风" (李逵=="铁牛" =="黑旋风" )语法:类型说明符& 引用变量名(对象名)=引用实体(不能是常量) 引用类型必须和引用实体是同种类型void TestPef(){ int a=10; ... 引用概念:引用不是新定义一个变量,而是个已存在变量取了一个别名(外号),编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间 比如:李逵,在家称为"铁牛",江湖上人称"黑旋风" (李逵=="铁牛" =="黑旋风" )语法:类型说明符& 引用变量名(对象名)=引用实体(不能是常量) 引用类型必须和引用实体是同种类型void TestPef(){ int a=10; ...
- 一、C 语言中传统的错误处理方式终止程序(如 assert)优点:适用于开发阶段快速发现严重错误。缺点:用户体验差,程序在运行时一旦遇到严重错误(如内存访问违规、除以零),会立即终止,难以接受。返回错误码(如通过 errno)优点:灵活,允许程序继续运行,适合错误可恢复的场景。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误。缺点:程序员需手动检查返回值并查找错误码含义,增... 一、C 语言中传统的错误处理方式终止程序(如 assert)优点:适用于开发阶段快速发现严重错误。缺点:用户体验差,程序在运行时一旦遇到严重错误(如内存访问违规、除以零),会立即终止,难以接受。返回错误码(如通过 errno)优点:灵活,允许程序继续运行,适合错误可恢复的场景。如系统的很多库的接口函数都是通过把错误码放到errno中,表示错误。缺点:程序员需手动检查返回值并查找错误码含义,增...
- 大家好,我是店小二。今天,我们将深入探讨 C++11 中新增的特性。在之前的学习过程中,大家或许已经接触或掌握了一些相关特性。让我们继续前进,探索更多 C++11 的精彩内容吧!一、C++简介1.1 C++11简介在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主... 大家好,我是店小二。今天,我们将深入探讨 C++11 中新增的特性。在之前的学习过程中,大家或许已经接触或掌握了一些相关特性。让我们继续前进,探索更多 C++11 的精彩内容吧!一、C++简介1.1 C++11简介在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主...
- 智能指针是现代 C++ 管理资源的核心工具,极大降低了内存泄漏与资源管理错误的风险。本文将简要剖析其底层实现机制,重点介绍引用计数、资源释放流程,以及各类智能指针的设计理念与差异。一、智能指针的使用及原理1.1 智能指针出现在 C++ 中,如果使用 new 分配内存但忘记使用 delete 释放,就会导致内存泄漏。尤其在遇到异常时,程序中途退出,delete 语句可能无法执行:void Fu... 智能指针是现代 C++ 管理资源的核心工具,极大降低了内存泄漏与资源管理错误的风险。本文将简要剖析其底层实现机制,重点介绍引用计数、资源释放流程,以及各类智能指针的设计理念与差异。一、智能指针的使用及原理1.1 智能指针出现在 C++ 中,如果使用 new 分配内存但忘记使用 delete 释放,就会导致内存泄漏。尤其在遇到异常时,程序中途退出,delete 语句可能无法执行:void Fu...
上滑加载中
推荐直播
-
码道新技能,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月份产品特性,通过“特性解读+实操演示+实战案例+设计创新”的组合,全方位展现码道在多会话并行与多智能体协作方面的能力,赋能开发者提升效率
正在直播
热门标签