「C/C++」C/C++程序设计
文章平均质量分 88
重新系统学习C/C++,深度了解C语言面向过程编程设计和C++面向对象编程设计的知识点。
何曾参静谧
己欲立而立人,己欲达而达人---《论语·雍也》
展开
-
「C/C++」常见注释格式
需要注意的是,Javadoc风格的注释被广泛应用于Java语言,但也可以用于其他语言,只需将相应的注释标签与代码一同编写,并使用适当的工具来生成文档。Javadoc风格的注释使用较为详细和结构化的注释格式,可以通过Javadoc工具生成函数和类的API文档,方便开发者进行阅读和理解。通过使用Doxygen格式的函数注释,可以使用Doxygen等文档生成工具自动生成详细的代码文档,提高代码的可读性和可维护性。不论采用何种注释格式,重要的是编写清晰、准确的函数注释,以提高代码的可读性和可维护性。原创 2024-02-01 23:50:13 · 959 阅读 · 0 评论 -
「C/C++」C/C++搭建程序框架
具体的框架和结构将根据项目的需求和规模而有所不同。通过选择合适的方法和工具,可以使程序更加可维护、可扩展和可测试。设计模式是解决特定问题的经验总结,可以在程序中提供一致性的结构和行为。使用开源或第三方库和框架可以加速开发过程,并提供可靠的功能和性能。这样可以方便地追踪和回滚代码的改动,以及与团队成员之间的协作。在代码中处理异常和错误可以提高代码的鲁棒性和容错能力。单元测试和集成测试可以在开发过程中自动化进行,帮助检测和修复潜在的问题。在C++中,搭建程序的框架有许多种方法,取决于项目的规模和复杂性。原创 2023-08-12 23:38:12 · 993 阅读 · 0 评论 -
「C/C++」C/C++可变参数函数
例如,在处理日志记录或输出格式化时,我们可以将格式字符串作为固定参数,然后使用可变参数来传递相应的值。当你需要在函数调用中传递任意数量的参数时,可变参数函数会派上用场。这样的函数可以在不预先指定参数数量的情况下,接收并处理传递的参数。需要注意的是,使用可变参数函数时,我们需要确保提供的参数类型和数量与函数定义兼容,以避免潜在的错误。总结一下,可变参数函数是一种非常有用的工具,允许我们在函数调用中传递任意数量的参数。通常,在列表的末尾使用一个特定的标识(如0)来表示参数的结束。是一个类型,用于存储可变参数,原创 2023-08-12 23:27:50 · 341 阅读 · 0 评论 -
「C/C++」C/C++正则表达式
是一种用于描述和匹配字符串模式的工具。检查一个字符串是否与指定模式匹配。在一个文本中搜索并替换符合规则的字符序列。根据模式将字符串切分成多个部分。对用户输入进行验证,以确保其符合特定格式要求。从字符串中抽取特定的信息、数据或属性。原创 2023-08-11 17:35:48 · 535 阅读 · 0 评论 -
「C/C++」C/C++指针详解
指针的作用:动态内存管理、数组操作、函数参数传递、函数返回值、数据结构、数组指针、函数指针、硬件交互。原创 2023-07-30 15:39:48 · 303 阅读 · 0 评论 -
「C/C++」C/C++宏定义#define
宏定义的名称通常使用大写字母,并使用下划线来分隔单词。宏定义必须以#define开头,定义的常量、函数、代码块等必须是合法的C语句。宏定义可以包含参数,从而使得宏可以在不同的场景下进行重用。宏定义可以使用反斜杠()对代码进行换行,以便于阅读和维护。宏定义在代码被编译之前就会被预处理器处理,所以宏定义是一种文本替换的手段,替换的过程是简单的字符串替换,因此要特别注意宏定义带来的潜在问题,比如优先级、参数的多次计算等等。这个宏定义了一个名为 PI 的常量,并将其值设定为 3.1415926。原创 2023-07-15 16:03:46 · 642 阅读 · 2 评论 -
「C/C++」C++类与类的关系(UML类图+代码说明)
在C++中,一个类可以依赖于另一个类,这意味着它使用了另一个类的成员函数或数据成员。组合关系是一种表示类与类之间关系的方式,它和聚合关系类似,但更加强调整体和部分之间的依赖关系。聚合关系是一种表示类与类之间关系的方式,它表示整体和部分之间的关系。实现关系是一种表示类与类之间关系的方式,它表示一个类实现了一个或多个接口。关联关系是一种表示类与类之间关系的方式,它表示两个类之间有相互关联的关系。在C++中,关联关系通常通过成员变量来实现。表示一个类的实现需要另一个类的协助,虚线+箭头,箭头指向被依赖的类。原创 2023-06-30 10:26:31 · 1759 阅读 · 0 评论 -
「C/C++」C/C++ 回调函数
回调函数是一种函数指针,它指向一个函数,并在另一个函数中被调用。一般而言,回调函数被用来处理异步事件或者实现面向对象编程中的多态性等功能。回调函数通常作为参数传递给另一个函数,该函数在执行过程中会调用回调函数。回调函数的使用可以使程序更加灵活和可扩展,同时也可以提高代码的复用性和可读性。首先需要定义一个回调函数,该函数的参数和返回值根据实际需求而定。原创 2023-06-07 13:55:59 · 1636 阅读 · 0 评论 -
「C/C++」C/C++ Lamada表达式
Lambda表达式:是`C++11`引入的一种`函数对象`,可以方便地创建匿名函数。与传统的函数不同,Lambda表达式可以在定义时直接嵌入代码,无需单独定义函数名称、参数和返回类型等信息。Lambda表达式通常用于需要定义一些简单的回调函数或者函数对象。优点:`简洁`、`效率高`、`更加灵活`。原创 2023-06-06 07:00:00 · 977 阅读 · 0 评论 -
「C/C++」C/C++空指针void*
void指针:是一种通用指针类型,可以指向任何类型的数据或对象。它不关心指向的数据或对象的类型,只关心指针本身的地址。因此,void指针可以用来传递任何类型的数据或对象,但无法直接对其进行操作或访问其值。在使用void指针时,需要将其转换为特定类型的指针,以便对其进行操作或访问其值。原创 2023-06-01 20:26:19 · 932 阅读 · 0 评论 -
「C/C++」C/C++软件跨平台思维
C++也提供了许多跨平台的库和框架,例如Boost、Qt等。在不断的测试和优化之后,软件在不同的平台上的运行效果将得到大幅提高,从而使软件在跨平台上运行的更加稳定。综上所述,编写可移植的代码、使用跨平台的库和框架、进行兼容性测试、用户界面设计是实现C++跨平台开发的关键,经过不断的测试和优化,软件将在不同平台上运行的更加稳定,并具有更好的复用性。有时候,不同平台上的操作系统和硬件可能有差异,为了能够在不同平台上实现相同的功能,需要使用条件编译指令,根据不同平台上的特性和要求,选择合适的代码进行编译和运行。原创 2023-04-29 19:53:50 · 1300 阅读 · 1 评论 -
「C/C++」C/C++静态链接库与动态链接库
静态链接库(Static Linking Library):是在编译时将库代码与应用程序静态链接在一起的库。它们被编译为二进制文件,并在运行时作为应用程序的一部分被载入内存。动态链接库(Dynamic Linking Library):是在应用程序运行时才被加载到内存中的库。它们不会被编译为二进制文件,而是被存储为单独的文件。原创 2023-04-28 18:50:17 · 1940 阅读 · 3 评论 -
「C/C++」C/C++异常处理
一、C语言中的异常处理1.返回值来传递错误信息2.使用标准库函数对异常进行处理(不推荐)3.使用全局变量来记录错误信息(不推荐)二、C++中的异常处理1.try{}catch(){}异常处理2.C++标准的异常3.异常的重新解析(工程开发中比较实用)4.自定义异常类原创 2023-04-23 19:45:58 · 960 阅读 · 1 评论 -
「C/C++」C++对已有的类进行扩充
继承是指在一个已有的类的基础上,创建一个新的类并且使用原有类的功能和属性。通过继承,派生类可以获得基类的全部或部分成员和方法,然后添加新的成员和方法,或者覆盖部分原有成员和方法。组合是指在类中嵌入对象,从而使组合类可以使用嵌入对象的全部或部分成员和方法。与继承不同,组合是静态的,即组合类与嵌入对象之间的关系在编译时就已经确定,不能在运行时动态改变。将类作为成员对象,基类可以直接调用派生类对应的属性和方法。继承父类后可以拥有父类对应的属性和方法。原创 2023-04-22 22:48:34 · 909 阅读 · 4 评论 -
「C/C++」C/C++强制类型转换
相关术语C语言中的强制类型转换C++中的强制类型转换static_castdynamic_castreinterpret_castconst_cast注意事项原创 2023-04-20 19:18:51 · 395 阅读 · 0 评论 -
「C/C++」C/C++内存四大分区
内存四大分区:一、文本区(Text Segment)/ 代码区二、数据区(Data Segment)/ 全局区三、栈区(Stack Segment)四、堆区(Heap Segment)原创 2023-04-16 10:03:57 · 1683 阅读 · 6 评论 -
「C/C++」C/C++预处理器
一、宏替换 #define1. 定义常量2. 定义函数3. 定义代码块二、条件编译 #if1. 使用 `#ifdef` 和 `#endif` 编译不同平台的代码2. 使用 `#if` 和 `#else` 编译不同版本的代码3. 使用 `#ifndef` 和 `#define`和`#endif`防止头文件重复包含三、头文件包含 #include 1.C语言头文件2.C++常用头文件原创 2023-04-15 14:39:11 · 1120 阅读 · 2 评论 -
「C/C++」C语言与C++的区别
C语言与C++的区别。原创 2023-04-14 18:54:53 · 865 阅读 · 1 评论 -
「C/C++」代码编写的命名规范
代码命名规范:1. 驼峰命名法(CamelCase):首字母小写,后面每个单词的首字母大写。如:studentName。2. 帕斯卡命名法(PascalCase):所有单词首字母大写,用于类名。如:ClassName。3. 下划线命名法(snake_case):所有字母小写,单词之间用下划线分隔。如:print_page。4. 命令式命名法:以动词开头,用于函数名。如:calculateArea()。原创 2023-04-13 17:56:31 · 1368 阅读 · 0 评论 -
「C/C++」一些值得学习的C++开源库
是一个 C++ 类库,提供了多种网络相关的功能,如 HTTP、SMTP、FTP、POP3 等,同时还包含了文件系统操作、XML 处理等功能模块,可以用于开发网络通讯类应用程序。是一个广泛使用的 C++ 开源库,包含了多种库,如智能指针、多线程、容器、正则表达式等,可以帮助 C++ 开发者更高效地开发应用程序。是一个轻量级的关系型数据库,提供了全功能的 SQL 数据库管理系统,同时提供了跨平台的支持,可以用于开发轻量级的数据库应用程序。原创 2023-04-02 20:45:52 · 775 阅读 · 0 评论 -
「C/C++」封装函数时提高效率的方法
函数封装时能够提高效率的一些方法。原创 2023-03-31 15:14:58 · 465 阅读 · 0 评论