C++ 学习
文章平均质量分 69
王成长
这个作者很懒,什么都没留下…
展开
-
对象类型转换
如果两个类之间没有继承关系,你可以在类中定义转换构造函数或者类型转换操作符。转换构造函数public:// 转换构造函数// 执行转换// 使用转换构造函数return 0;类型转换操作符public:// 类型转换操作符// 使用类型转换操作符return 0;你不能直接将一个构造函数强转为另一个构造函数。但是,你可以通过继承、转换构造函数或者类型转换操作符,将一个类型的对象转换为另一个类型的对象。这取决于你的类设计和实际需求。原创 2024-08-08 15:47:21 · 80 阅读 · 0 评论 -
std::vector
现代 C++ 提供了标准容器(如 std::vector)来管理动态数组,这样可以避免手动管理内存,提高代码的安全性和可维护性。原创 2024-08-08 11:04:14 · 69 阅读 · 0 评论 -
this指针
在 C++ 中,this 指针是一个隐含参数,传递给类的非静态成员函数。它指向调用成员函数的对象自身,允许成员函数访问对象的成员变量和其他成员函数。原创 2024-08-08 10:52:16 · 198 阅读 · 0 评论 -
typedef 和 using
typedef 用于为类型创建别名,简化复杂类型的声明和提高代码可读性。在现代 C++ 中,using 关键字通常被推荐用于创建类型别名,提供了更简洁的语法和更多的功能。这使得代码更加易于理解和维护,特别是当使用复杂类型和模板时。原创 2024-08-07 16:04:26 · 221 阅读 · 0 评论 -
虚析构函数
当通过基类指针删除对象时,能够正确调用派生类的析构函数。防止资源泄漏和未定义行为。这是面向对象编程中管理资源和多态性的关键机制之一。原创 2024-08-07 15:55:18 · 240 阅读 · 0 评论 -
静态局部变量和链接类型
内部链接:static 关键字用于全局变量或函数时,表示这些变量或函数只能在声明它们的文件中访问。静态局部变量:在函数内部使用 static 关键字声明的变量在函数多次调用之间保持其值,并且只初始化一次。原创 2024-08-07 15:11:45 · 286 阅读 · 0 评论 -
enum和 enum class
enum class 和传统的 enum 是 C++ 中用于定义枚举的两种方式。它们在语法和行为上有一些关键的不同点。以下是对这两种枚举类型的详细比较和解释。原创 2024-08-05 13:57:24 · 342 阅读 · 0 评论 -
前向声明(forward declarations)
include "Fip.h" // 包含 Fip 类的完整定义#include "AbstractFcp.h" // 包含 AbstractFcp 类的完整定义// 可以使用 fipPtr 和 fcpPtr 调用实际的成员函数或访问数据前向声明:用于在类的头文件中减少对其他类完整定义的依赖,只需要告知编译器这些类存在。减少编译时间和依赖:有助于缩短编译时间,避免循环依赖和复杂的代码结构。使用完整定义:在需要实际使用类成员函数或访问类数据时,在实现文件中包含完整的头文件。原创 2024-08-05 13:39:04 · 174 阅读 · 0 评论 -
protected
保护成员访问:protected 成员可被类本身和其派生类访问,但不能被类外的代码直接访问。继承和封装:使用 protected 可以在继承体系中提供必要的接口,同时保护不需要暴露给外部的实现细节。提高代码的灵活性:允许派生类在不破坏封装的情况下访问和修改基类的内部数据。使用 protected 访问控制修饰符时,要确保设计上的合理性,以避免滥用,使得封装性和接口设计保持一致。原创 2024-08-05 13:26:48 · 123 阅读 · 0 评论 -
多态性(Polymorphism)
多态性允许使用基类指针或引用来处理不同的派生类对象,通过相同的接口实现不同的行为。虚函数是实现运行时多态性的基础,通过动态绑定决定调用哪个派生类的方法。纯虚函数和抽象类允许定义接口,强制派生类提供具体实现,从而实现灵活和可扩展的设计。原创 2024-08-05 13:11:43 · 376 阅读 · 0 评论 -
动态多态性
动态多态性使得程序在运行时决定调用哪个函数的实现,而不是在编译时确定。这种机制允许程序设计者在使用基类指针或引用时,操作不同类型的派生类对象,实现灵活的和可扩展的代码。通过虚函数和虚函数表,C++ 实现了这一强大的特性。原创 2024-08-05 10:50:25 · 372 阅读 · 0 评论 -
构造函数和析构函数
构造函数(Constructor)和析构函数(Destructor)是C++中类的一部分,它们在对象的生命周期中起着重要作用。原创 2024-08-05 10:19:06 · 212 阅读 · 0 评论 -
指针的使用
指针的基本操作包括定义、取地址和解引用。指针与数组 紧密相关,可以使用指针遍历和操作数组。指针作为函数参数 可以修改传入的变量。指针与动态内存分配 允许在运行时分配和释放内存。指针与常量 可以用来创建指向常量的指针或常量指针,增加了代码的安全性和灵活性。指针是C++中非常强大且灵活的工具,掌握指针的用法对写出高效和灵活的代码至关重要。原创 2024-08-02 10:48:11 · 269 阅读 · 0 评论 -
指针作为函数参数
通过指针传递参数在C++中有许多应用场景和优势,包括修改原始数据、节省内存、动态内存管理等。指针的灵活性使其成为C++编程中的一个强大工具,但也要求程序员谨慎使用,避免出现空指针、悬空指针等问题。理解和掌握指针的用法,对编写高效、安全的C++代码至关重要。原创 2024-08-02 10:42:13 · 234 阅读 · 0 评论 -
static静态
static 关键字在 C++ 中有多种用途,具体取决于其使用的上下文。以下是 static 在不同上下文中的常见用法:原创 2024-07-26 17:34:35 · 297 阅读 · 0 评论 -
inline 函数调用机制
inline 是 C++ 关键字,用于提示编译器将函数尽量内联(inline)。内联函数的代码会在每次调用时直接替换到调用点,而不是通过常规的函数调用机制。这可以减少函数调用的开销,尤其是在函数体较小且频繁调用的情况下。原创 2024-07-26 11:37:03 · 868 阅读 · 0 评论 -
函数签名(Function Signature)
函数签名(Function Signature)是指函数的名称及其参数类型的组合。函数签名用于标识和区分不同的函数。函数签名不包括返回类型,也不包括参数的名字。两个函数如果名称相同且参数类型(及其顺序)相同,那么它们的函数签名是相同的。原创 2024-07-26 10:54:51 · 243 阅读 · 0 评论 -
nop函数 (no operation)
这是一个模板函数的定义,表示该函数接受一个类型参数ArgumentType。这个类型参数可以是任意类型。inline:这是一个提示编译器将函数内联化。内联化意味着在调用这个函数时,编译器会尝试将函数的代码直接插入到调用点,避免函数调用的开销。:这是函数的声明。函数名为 nop,接受一个 const 引用类型的参数。函数体为空,表示什么也不做。nop 函数模板是一个接收任意类型参数但不进行任何操作的函数。在模板编程和调试过程中,可以使用 nop 函数作为占位符,确保代码在编译期间不会报错。原创 2024-07-26 10:44:20 · 263 阅读 · 0 评论 -
const 在类中的应用
在 C++ 中,const 关键字在类中的应用非常广泛,它可以用于声明常量数据成员、常量成员函数、常量对象等。下面是 const 在类中的几个常见应用场景及其说明:原创 2024-07-25 18:10:55 · 276 阅读 · 0 评论 -
const 常规用法
const 关键字在 C++ 中用于表示常量,可以应用于变量、指针、函数参数、成员函数等。使用 const 可以提高代码的可读性和安全性,防止意外修改数据。原创 2024-07-25 17:18:29 · 268 阅读 · 0 评论 -
#ifndef, #define, 和 #endif预处理阶段的包含保护
如果一个头文件被多次包含,可能会导致符号的重复定义错误,尤其是在类、函数或全局变量的定义中。头文件的包含保护是一个简单而有效的技术,用于防止头文件被多次包含引起的重复定义错误。通过使用 #ifndef、#define 和 #endif 指令,可以确保头文件在整个项目中被唯一和高效地处理。原创 2024-07-24 16:46:24 · 251 阅读 · 0 评论 -
extern 声明全局变量
全局变量通常在头文件中声明,在一个源文件中定义。头文件(globals.h)// 声明全局变量源文件(globals.cpp)// 定义全局变量在 globals.h 中声明了 globalVar 和 maxBufferSize,其中 globalVar 使用 extern关键字,maxBufferSize 是一个 constexpr 常量。在 globals.cpp 中定义并初始化了 globalVar。原创 2024-07-24 16:27:40 · 821 阅读 · 0 评论 -
contexpr 关键字
constexpr 是 C++11 引入的关键字,用于定义常量表达式(constant expressions)。这些表达式在编译时求值,从而可以提升程序的效率。constexpr 可以用于变量、函数和构造函数。原创 2024-07-24 15:44:39 · 802 阅读 · 0 评论