《跟老吕学C++》
文章平均质量分 97
老吕学C++,为的是更好地发挥Python“胶水语言”的作用。你可以把许多常用的函数和计算模块用C++编写,然后将C++的方法包装起来,以便能在Python代码中调用这个方法。这样可获得C++代码的高速度优势,又保持Python调用的便捷性与可读性。
Python老吕
大家好,我是Python老吕,擅长用Python编写Web、APP和网络爬虫爬取资料,关于Python的问题或者合作项目,大家都可以找我交流一下。
展开
-
35.C++预处理器——《跟老吕学C++》
宏定义是C++预处理器的一个重要功能,它允许你为代码中的常量或常用代码段定义别名。宏定义使用#define指令,并且有两种形式:对象宏和函数宏。对象宏#define PI3.14159在这个例子中,PI被定义为3.14159的别名。在代码中,任何PI的出现都会被预处理器替换为3.14159。对象宏非常简单且直接,但需要注意的是,它们没有类型信息,仅仅是文本替换。因此,在复杂的表达式中使用它们时可能会产生非预期的结果。函数宏函数宏允许你定义一个类似函数的宏。原创 2024-07-05 18:52:01 · 371 阅读 · 0 评论 -
34.C++模版——《跟老吕学C++》
C++模板是一种强大而灵活的工具,它允许我们编写独立于特定数据类型的代码,提高代码的灵活性和可重用性。通过掌握函数模板、类模板、模板特化等概念,我们可以编写出更加高效、类型安全的代码。然而,在使用模板时,我们也需要注意编译时间、代码可读性、类型安全以及模板元编程等问题。未来,随着C++语言的不断发展和完善,模板技术也将继续发挥其在泛型编程中的重要作用。原创 2024-07-05 18:43:23 · 205 阅读 · 0 评论 -
33.C++命名空间——《跟老吕学C++》
在C++中,可以使用namespace关键字来定义命名空间。一旦定义了命名空间,我们就可以在其中声明任何有效的C++实体,如变量、函数、类、枚举等。// ...// ...命名空间是C++中一个非常有用的特性,它帮助我们避免了命名冲突,并允许我们更好地组织代码。通过合理地使用命名空间和相关的using声明/指令,我们可以编写更清晰、更易维护的C++代码。原创 2024-07-05 18:33:39 · 406 阅读 · 0 评论 -
32.C++动态内存——《跟老吕学C++》
C++中的动态内存管理是一个强大而复杂的工具,它允许我们在运行时根据需要分配和释放内存。然而,它也需要我们谨慎地使用,以避免内存泄漏、野指针和异常安全等问题。通过正确地使用newdelete和智能指针,并结合一些性能优化策略,我们可以有效地管理动态内存,提高程序的性能和稳定性。在编写涉及大量动态内存操作的代码时,务必注意内存管理的最佳实践,以确保程序的正确性和可靠性。原创 2024-07-05 18:22:47 · 545 阅读 · 0 评论 -
31.C++异常处理——《跟老吕学C++》
在C++中,除了使用标准库中的异常类(如等),你还可以定义自己的异常类来处理特定的错误情况。自定义异常类通常继承自或其子类,并覆盖what()成员函数以提供有关异常的详细信息。清晰性:通过为特定的错误情况定义特定的异常类,可以使代码更加清晰易懂。当看到某个异常被抛出时,你可以立即知道它是哪种类型的错误。可扩展性:如果你需要处理更多的错误情况,只需定义更多的自定义异常类即可。每个类都可以包含特定的错误信息和处理逻辑。安全性:自定义异常类可以帮助你在代码的不同部分之间建立清晰的错误处理边界。原创 2024-07-05 18:12:00 · 281 阅读 · 0 评论 -
30.C++文件和流——《跟老吕学C++》
C++的文件流库为文件和流操作提供了强大的支持。通过掌握文件流的基本操作和高级用法,并遵循最佳实践,你可以编写出健壮、高效且易于维护的C++程序。无论是在处理文本文件还是二进制文件时,C++的文件流库都能帮助你轻松实现各种文件操作。原创 2024-07-05 18:03:41 · 382 阅读 · 0 评论 -
29.C++接口(抽象类)——《跟老吕学C++》
在C++中,我们可以使用virtual关键字来声明一个纯虚函数(Pure Virtual Function),从而定义一个抽象类。纯虚函数是一个在基类中声明但没有实现的虚函数,任何包含纯虚函数的类都是抽象类。public:// 纯虚函数// 虚函数(可选)// 可以在基类中提供默认实现// 非虚函数(可选)// 普通的成员函数在这个例子中,是一个抽象类,因为它包含一个纯虚函数。由于这个纯虚函数的存在,我们不能直接创建的实例。但是,我们可以创建一个指向的指针或引用,并让它指向其派生类的实例。原创 2024-07-05 17:52:25 · 411 阅读 · 0 评论 -
28.C++数据封装——《跟老吕学C++》
在C++中,数据封装是一种重要的编程技术,它通过将数据和操作数据的方法绑定在一起,来保护数据的完整性和安全性,隐藏实现细节,并提高代码的可维护性和重用性。通过类来实现封装,我们可以精确地控制对类成员的访问,并使用访问控制关键字(如privatepublic和protected)来定义不同级别的访问权限。封装是面向对象编程的核心特性之一,它使得我们可以更好地组织和管理代码,创建出更加健壮、可维护和可重用的软件系统。原创 2024-07-05 17:32:21 · 399 阅读 · 0 评论 -
27.C++数据抽象——《跟老吕学C++》
在C++编程中,数据抽象是一个核心概念,它通过将数据的表示与数据的使用分离来提高代码的可维护性、可重用性和可扩展性。通过抽象数据类型(ADT)、类与封装、接口与实现等概念,我们可以创建出更加模块化、灵活和健壮的软件系统。同时,数据抽象还与多态性、代码质量和软件设计原则密切相关,共同构成了C++编程中的核心知识体系。原创 2024-07-05 17:04:08 · 444 阅读 · 0 评论 -
26.C++多态——《跟老吕学C++》
多态性是C++面向对象编程中一个非常重要的概念,它允许我们使用父类类型的指针或引用来调用子类的成员函数,从而提高了代码的灵活性和可重用性。通过虚函数和继承机制,我们可以实现多态性,并在运行时根据对象的实际类型来调用相应的函数。然而,在使用多态性时也需要注意一些潜在的问题和注意事项,以确保代码的正确性和性能。在实际编程中,我们可以利用多态性来构建更加灵活和可扩展的解决方案,以满足各种复杂的需求。原创 2024-07-05 16:55:24 · 762 阅读 · 0 评论 -
25.C++重载运算符和重载函数——《跟老吕学C++》
C++中的运算符重载和函数重载都是提高代码可读性和可维护性的重要工具。通过为自定义类型定义新的行为,可以使这些类型的使用更加直观和方便。然而,在使用这些特性时,应注意遵守相关的规则和约定,以避免潜在的问题和混淆。同时,也应根据具体的使用场景和需求来选择合适的重载方式。原创 2024-07-05 16:37:08 · 630 阅读 · 0 评论 -
24.C++继承——《跟老吕学C++》
C++的继承机制允许我们创建层次结构化的类,并通过重用和扩展代码来简化程序的开发。通过合理地使用继承,我们可以提高代码的可维护性、可重用性和可扩展性。然而,过度使用继承也可能导致代码结构的复杂性和难以理解性增加,因此在使用继承时需要谨慎权衡利弊。原创 2024-07-03 22:46:19 · 638 阅读 · 0 评论 -
23.C++类 & 对象——《跟老吕学C++》
在C++中,我们可以使用class关键字来定义一个类。类通常包含两部分:成员变量(或称为属性、数据成员)和成员函数(或称为方法、成员函数)。下面是一个简单的示例,展示如何定义一个名为Rectanglepublic:// 成员变量(属性)// 成员函数(方法)// 构造函数// 计算矩形面积的方法// 计算矩形周长的方法在上面的示例中,Rectanglewidth和height,分别表示矩形的宽度和高度。构造函数:用于初始化矩形的宽度和高度。方法:用于计算矩形的面积。原创 2024-07-03 21:05:59 · 751 阅读 · 0 评论 -
22.C++数据结构——《跟老吕学C++》
在C++中,我们可以使用struct关键字来定义结构。int bookID;在这个定义中,我们创建了一个名为Booktitle(书名,字符串类型)、author(作者,字符串类型)、subject(主题,字符串类型)和bookID(书号,整型)。在C++中,结构体(struct)是一种强大的工具,允许我们定义自定义的数据类型。通过结构体,我们可以将多个相关的数据成员组合在一起,并通过成员函数提供对这些数据的操作。此外,我们还可以使用结构体数组和结构体指针来操作多个结构体对象。原创 2024-07-03 21:01:20 · 722 阅读 · 0 评论 -
21.C++基本的输入输出——《跟老吕学C++》
除了使用标准库中的cin和cout,C++还允许我们自定义输入输出流,以处理特定类型的数据或特定的输入输出需求。这通常通过重载输入输出操作符(如>>和原创 2024-07-03 20:53:00 · 497 阅读 · 0 评论 -
20.C++日期 & 时间——《跟老吕学C++》
C++标准库提供了丰富的日期和时间处理功能,包括库的高精度时间点和持续时间处理,以及库的C风格日期和时间函数。C++20进一步增强了日期和时间处理的能力,引入了更加直观和方便的日期和时间类型。通过合理地使用这些库和特性,我们可以方便地进行日期和时间的获取、格式化、解析、计算等操作,满足各种应用场景的需求。在编写涉及日期和时间的代码时,需要注意线程安全问题,尤其是在多线程环境中对全局变量或静态变量进行访问时。此外,对于时区处理等复杂需求,可以考虑使用第三方库来提供更强大的功能。原创 2024-07-03 20:46:32 · 562 阅读 · 0 评论 -
19.C++引用——《跟老吕学C++》
C++中的引用是一种强大而灵活的工具,它可以帮助我们更高效地访问和操作内存中的数据。通过合理使用引用可以避免不必要的内存开销和时间复杂度并提高代码的可读性和可维护性。然而,在使用引用时也需要注意一些潜在的问题和注意事项,以确保代码的正确性和安全性。原创 2024-07-03 20:40:27 · 531 阅读 · 0 评论 -
18.C++指针——《跟老吕学C++》
指针是C++中一个强大而复杂的工具。通过正确地使用指针,我们可以实现对内存的直接操作,创建高效的数据结构,并执行底层系统编程任务。然而,指针也带来了一些风险,如空指针、野指针、悬挂指针等。因此,在使用指针时,我们必须格外小心,并遵循一些基本的编程实践,如初始化指针、检查指针的有效性、避免指针运算溢出等。通过谨慎和正确地使用指针,我们可以充分发挥它们在C++编程中的优势。原创 2024-07-03 20:28:08 · 442 阅读 · 0 评论 -
17.C++字符串——《跟老吕学C++》
C++的类是一个功能强大的字符串处理工具,它提供了丰富的成员函数来操作字符串。通过了解和使用这些函数,你可以轻松地在C++中进行字符串的声明、初始化、操作、修改以及与C风格字符串的转换。同时,类还支持流插入和流提取运算符,使得字符串的输入/输出变得简单直观。原创 2024-07-03 00:14:38 · 1001 阅读 · 0 评论 -
16.C++数组——《跟老吕学C++》
数组是C++中一种基础而重要的数据结构,用于存储固定数量的相同类型元素。它们提供了对内存的直接访问,因此在某些情况下可以比标准库容器更高效。然而,由于数组的大小是固定的,并且没有内置的函数来查询其大小或执行其他操作,因此在使用数组时需要格外小心。在需要动态大小调整或更多功能的情况下,建议使用C++标准库提供的容器。原创 2024-07-02 21:52:33 · 946 阅读 · 0 评论 -
15.C++数字——《跟老吕学C++》
在C++中,定义数字的方式非常简单。你可以直接声明一个变量并为其赋值,或者声明变量时先不赋值,后续再为其赋值。// 声明并初始化整型变量// 注意L后缀表示long long// 声明并初始化浮点型变量// 注意f后缀表示float// 注意L后缀表示long double// 声明变量后赋值C++提供了强大的数字处理能力,包括多种数字类型、算术运算符、类型转换机制以及数学库等。这些功能使得C++成为处理数值数据的理想选择。原创 2024-07-02 21:46:14 · 670 阅读 · 0 评论 -
14.C++函数——《跟老吕学C++》
在C++中,函数的定义指定了函数名、返回类型(如果有的话)、参数列表以及函数体。函数体包含了函数在被调用时执行的代码。// 定义一个名为add的函数,它接收两个int类型的参数并返回一个int类型的值在上面的例子中,add是函数名,是参数列表,函数体是,这个函数计算两个整数的和并返回结果。C++中的函数是一个强大的工具,它允许我们将代码组织成可重用的部分,并提高代码的可读性和可维护性。原创 2024-07-02 21:36:47 · 948 阅读 · 0 评论 -
13.C++循环——《跟老吕学C++》
C++提供了多种循环结构和控制语句,用于处理需要重复执行的任务。在选择使用哪种循环时,应考虑代码的可读性和清晰度。同时,还应注意循环的性能优化,以减少不必要的计算和提高程序的执行效率。通过合理使用循环结构和控制语句,可以编写出高效、可维护的C++代码。原创 2024-07-02 21:14:04 · 962 阅读 · 0 评论 -
12.C++运算符——《跟老吕学C++》
C++运算符是编程中不可或缺的一部分。熟练掌握各种运算符的用法和特性,并注意运算符的优先级、结合性、重载和副作用等问题,将有助于我们编写出更加高效、简洁、易读和可维护的代码。原创 2024-07-02 20:53:30 · 683 阅读 · 0 评论 -
11.C++修饰符类型——《跟老吕学C++》
C++的修饰符类型丰富多样,它们为程序员提供了强大的工具来控制代码的行为和特性。通过合理使用这些修饰符,可以编写出更加清晰、高效且安全的代码。然而,也需要注意不要过度使用或误用这些修饰符,以免引入不必要的复杂性或错误。在编写代码时,应该根据具体的需求和场景来选择合适的修饰符,并遵循良好的编程实践和规范。原创 2024-07-02 18:54:09 · 827 阅读 · 0 评论 -
10.C++常量——《跟老吕学C++》
在C++编程中,常量是一个非常重要的概念。它们可以确保程序中的某些值在运行期间不会被意外修改,从而提高程序的健壮性和可靠性。C++提供了多种类型的常量,包括整型常量、浮点常量、字符常量、字符串常量、枚举常量和const常量等。此外,C++11及更高版本还引入了constexpr关键字,允许在编译时计算常量表达式的值。通过合理使用这些常量类型,我们可以编写出更加健壮、可靠和易于维护的C++代码。原创 2024-07-02 18:24:58 · 747 阅读 · 0 评论 -
9.C++变量作用域——《跟老吕学C++》
在C++中,变量的作用域决定了变量在程序中的可见性和生命周期。了解不同类型的作用域有助于我们编写更加清晰、可维护的代码。在定义变量时,我们应该尽可能地减小变量的作用域,以避免命名冲突和不必要的内存占用。同时,合理使用全局变量、命名空间和类作用域等机制,可以提高代码的可读性和可维护性。通过掌握这些作用域的概念和用法,我们可以更好地组织和管理代码,提高编程效率和质量。原创 2024-07-02 18:11:58 · 514 阅读 · 0 评论 -
8.C++变量类型——《跟老吕学C++》
在C++中,定义一个变量通常包括以下两部分:变量类型和变量名。类型告诉编译器这个变量将要存储哪种类型的数据,而名字则是一个标识符,允许我们在后续的代码中引用这个变量。// 定义一个整型变量myNumber在这个例子中,int是变量类型,表示这个变量将存储一个整数。myNumber是变量名,是我们用来引用这个变量的标识符。在上面的讨论中,我们提到了“定义”变量,但在C++中,还有一个与“定义”相关的概念,那就是“声明”。虽然这两个词在某些情况下可以互换使用,但在C++中它们有明确的区别。原创 2024-07-01 22:38:02 · 890 阅读 · 0 评论 -
7.C++数据类型——《跟老吕学C++》
数据类型是C++编程中不可或缺的一部分。通过合理地选择和使用数据类型,可以编写出高效、健壮和易于维护的C++程序。同时,也需要注意数据类型与内存管理、类型转换以及数据类型选择与优化等方面的问题,以确保程序的正确性和性能。原创 2024-07-01 22:29:34 · 989 阅读 · 0 评论 -
6.C++注释——《跟老吕学C++》
在C++编程中,注释是一个重要的工具用于提高代码的可读性和可维护性。通过合理使用注释并遵循一定的编写规范可以使得代码更加易于理解和使用。同时我们也需要注意避免过度注释以及及时更新和维护注释以确保其准确性和有效性。原创 2024-07-01 22:16:15 · 966 阅读 · 0 评论 -
5.C++基本语法——《跟老吕学C++》
C++是一种功能强大的编程语言,支持多种数据类型、运算符、控制流语句、函数、类和对象等。通过学习和掌握C++的基本语法和特性,可以编写出高效、可维护、可移植的程序。同时,程序员还需要注意内存管理和异常处理等方面的问题,以确保程序的稳定性和安全性。原创 2024-07-01 22:05:06 · 648 阅读 · 0 评论 -
4.C++常用开发工具——《跟老吕学C++》
在C++开发过程中,选择合适的开发工具对于提高开发效率和质量至关重要。从集成开发环境、编译器到版本控制系统、构建工具等各个方面,都有丰富的工具可供选择。开发者可以根据自己的需求和习惯选择适合的工具组合,打造高效、顺畅的开发环境。同时,不断学习和掌握新的工具和技术也是提高个人能力和适应项目需求的重要途径。原创 2024-06-28 05:42:21 · 678 阅读 · 0 评论 -
3.C++语言结构——《跟老吕学C++》
C++是一种高级编程语言,支持多种编程范式,包括过程式、面向对象和泛型编程。它是C语言的扩展,由Bjarne Stroustrup于1980年代初开发。C++因其高效、灵活和强大的特性,在软件开发领域具有广泛的应用,包括系统级编程、嵌入式系统、游戏开发、图形界面设计等。抽象是面向对象编程中的另一个核心概念。它关注的是对象的本质特征,而忽略其具体的实现细节。在C++中,抽象通常通过抽象类(包含纯虚函数的类)和接口(只包含纯虚函数的类)来实现。抽象类不能被实例化,只能作为基类被其他类继承。原创 2024-06-28 05:22:59 · 992 阅读 · 0 评论 -
【C++基础】5.C++基本语法——《跟老吕学C++编程语言》
空格分隔语句的各个部分,让编译器能识别语句中的某个元素(比如 int)在哪里结束,下一个元素在哪里开始。以前为了表示键盘上没有的字符,这是必不可少的一种方法。三字符组就是用于表示另一个字符的三个字符序列,又称为三字符序列。之间的空格字符不是必需的,但是为了增强可读性,您可以根据需要适当增加一些空格。三字符序列可以出现在任何地方,包括字符串、字符序列、注释和预处理指令。只包含空格的行,被称为空白行,可能带有注释,C++编译器会完全忽略它。C++ 不以行末作为结束符的标识,因此,您可以在一行上放置多个语句。原创 2024-03-14 18:18:08 · 909 阅读 · 0 评论 -
5.3C++注释——《跟老吕学C++》
在C++编程中,注释扮演着至关重要的角色。编写清晰、准确且简洁的注释,并遵循统一的代码风格和注释规范,可以显著提高代码的可读性和可维护性,从而使代码更易于被他人理解和使用。此外,我们也应重视注释的及时更新和维护,确保其始终与代码内容保持一致。值得注意的是,我们应尽量避免依赖注释来处理错误或异常情况,而应采用更为恰当和有效的错误处理机制来解决问题。注释是程序员在代码开发过程中添加的文本说明,它们不会影响程序的实际逻辑,但可以在其中编写与代码相关的有意义的内容。原创 2024-03-14 17:38:23 · 938 阅读 · 0 评论 -
x.第一个C++程序“Hello world!”——《跟老吕学C++》
C语言和C++语言有着不同的编程范式、语法特性、类型检查机制、面向对象编程支持、标准库等方面的区别。C++是在C语言的基础上进行扩展和增强的,支持更多的编程范式和特性,特别适合面向对象编程。而C语言则是一种更为简洁和基础的编程语言,适合于需要较低层次的系统编程和嵌入式系统开发。本文写的C语言和C++语言的例子都是很简单的,想入门的朋友,建议自行敲击键盘几十、几百次,最好背下来,这样就很快能进入编程的氛围了。原创 2024-03-14 14:47:29 · 1077 阅读 · 0 评论 -
2.C++语言安装、配置搭建开发环境——《跟老吕学C++》
在本文中,我们详细介绍了如何在不同操作系统上安装和配置C++开发环境。对于UNIX/Linux系统,我们介绍了如何检查GCC是否已安装、如何安装GCC以及Linux换源的方法,以确保能够顺利地从可靠的软件源获取最新的编译器和开发工具。在Mac OS X系统上,我们推荐使用Xcode作为C++编译器,同时也提到了Visual Studio Code (VSCode) 的配置方法,包括如何下载和安装必要的C/C++插件。对于Windows用户,我们提供了两种安装C++开发环境的方案。原创 2024-03-14 12:52:29 · 865 阅读 · 0 评论 -
1.C++语言介绍——《跟老吕学C++》
C++,全称是C Plus Plus。老吕比较喜欢叫它C加加。C++是一种通用的、过程式的计算机编程语言,支持多种编程范式,包括面向对象编程、泛型编程和过程化编程。它被认为是一种中级语言,因为它综合了高级语言和低级语言的特点。C++由Bjarne Stroustrup于1983年作为C语言的增强版而创建,最初被命名为“C with Classes”。C++是C语言的继承;C++是是编译式的;C++是通用的、大小写敏感的、不规则的编程语言;C++是一种中级语言,它综合了高级语言和低级语言的特点。原创 2024-03-14 11:01:07 · 1293 阅读 · 0 评论