cpp
文章平均质量分 68
zengchenAAA
这个作者很懒,什么都没留下…
展开
-
c++中的__declspec(dllexport) 和 __declspec(dllimport)
是Microsoft Visual C++特有的修饰符,用于声明在动态链接库(DLL)中定义的函数和变量,以便在另一个模块中使用。它告诉编译器该函数或变量是从 DLL 中导入的,而不是在当前模块中定义的。当你在一个项目中使用 DLL 时,你需要告诉编译器这些函数和变量是从 DLL 中导入的。这样,编译器就会在链接时查找相应的函数和变量的定义,并将其地址替换为导入的 DLL 中的地址。举个例子,假设你有一个名为MyDLL的 DLL,其中有一个函数。在你的项目中使用这个 DLL 时,你需要在项目中使用。原创 2024-04-23 09:03:06 · 569 阅读 · 0 评论 -
c++中的复制(深拷贝/浅拷贝/拷贝构造函数/拷贝赋值运算符/移动语义)
移动构造函数的形式为。原创 2024-04-22 16:24:20 · 1334 阅读 · 0 评论 -
cpp中的右值引用(&&)及其相关拓展知识
在早期的 C++ 中,如果一个函数需要将它所接收到的参数传递给另一个函数,你可能需要手动编写多个重载版本,以适应各种可能的参数类型和数量。使用完美转发,你可以编写一个通用的函数模板,它接收任意类型和数量的参数,并将它们转发给另一个函数,保持原始参数的类型和值不变。完美转发(perfect forwarding)是 C++11 引入的一个重要特性,它允许函数将它所接收到的参数(包括其类型和值)转发给其它函数,同时保持原始参数的类型和值不变。是一个模板函数,它将一个左值转换为对应的右值引用。原创 2024-04-21 11:12:04 · 734 阅读 · 0 评论 -
c++中什么叫做窄式转换(narrowing conversions)以及窄式转换解决方案
窄化转换(narrowing conversion)是指将一个值转换为另一种类型,但转换过程中丢失了信息或超出了目标类型的表示范围的情况。在C++中,窄化转换是一种可能导致数据丢失或不确定行为的类型转换,因此在某些情况下是不允许的。例如,将一个浮点数转换为整数类型时可能发生窄化转换。如果浮点数的值大于整数类型的最大值或小于最小值,则会丢失小数部分的信息,这可能导致不正确的结果。原创 2024-04-19 16:11:48 · 187 阅读 · 0 评论 -
c++中智能指针的介绍与基本使用
在C++中,智能指针是一种用于管理动态分配的内存资源的对象。它们可以自动地在不再需要时释放内存,从而帮助避免内存泄漏和悬挂指针等问题。管理的对象,但不会增加引用计数。因此,它不会影响所管理对象的生命周期。管理内存时,可能会导致内存泄漏,因为引用计数永远不会达到零。循环引用(循环依赖)的问题。当两个对象相互引用并且使用。来打破循环引用,可以避免这个问题。的补充,用于解决循环引用的问题。是一种弱引用智能指针,它指向由。另外,C++11还引入了。原创 2024-04-18 14:52:30 · 658 阅读 · 0 评论 -
c++中类型转换运算符详细说明
类型转换运算符是 C++ 中用于执行类型转换的一组特殊运算符,用于在不同类型之间进行转换。原创 2024-04-18 08:59:37 · 172 阅读 · 0 评论 -
c++中各种运算符
【代码】c++中各种运算符。原创 2024-04-17 22:02:14 · 435 阅读 · 0 评论 -
c++中mutable关键词解释以及详细用法
成员函数被设计为不修改对象的状态。然而,在某些情况下,我们可能希望在。成员函数中修改某些状态,比如缓存值的更新。关键字直接放在类的成员变量声明前面,表示该成员变量可以在。成员函数中修改某些状态的情况很有用。关键字用于修饰类的成员变量,它允许被。原创 2024-04-17 19:44:01 · 159 阅读 · 0 评论 -
c++中const的最全详细说明和使用(最全)
在C++中,const是一个非常重要的关键字,用于声明常量、修饰变量、参数和成员函数。下面是关于const。原创 2024-04-17 17:52:42 · 478 阅读 · 0 评论 -
c++中字符串string常用API
在C++中,std::string是标准库中用于处理字符串的一个类。原创 2024-04-17 16:10:57 · 212 阅读 · 0 评论 -
c++中虚函数、纯虚函数以及虚函数的实现原理
虚函数(Virtual Functions)和纯虚函数(Pure Virtual Functions)是 C++ 中用于实现多态性的重要概念。原创 2024-04-17 12:56:29 · 560 阅读 · 0 评论 -
c++中的静态(内容包含类外、类内以及局部的静态)
在 C++ 中,你可以在任何作用域(例如文件作用域或函数作用域)内声明静态变量。这些变量不会与任何特定的类相关联,它们只是在声明它们的作用域内可见。静态变量是在程序运行期间保持其值的变量,但其作用域受限于声明它的区域。静态变量在函数内部声明时,生命周期与程序的执行周期相同,但作用域仅限于声明它的函数内部。静态变量在函数外部声明时,生命周期也与程序执行周期相同,但作用域为文件作用域。在上面的例子中,是在全局作用域内声明的静态变量,而是在函数作用域内声明的静态变量。原创 2024-04-17 12:47:19 · 333 阅读 · 0 评论 -
c++中类(class)和结构体(struct)的对比
当你在C++中定义一个类(class)或结构体(struct)时,你实际上在创建一个自定义的数据类型,用于组织和操作数据。原创 2024-04-16 15:28:14 · 351 阅读 · 0 评论 -
c++中公有继承和私有继承的区别
在C++中,公有继承(public inheritance)和私有继承(private inheritance)是两种不同的继承方式,它们在访问权限和派生类与基类之间的关系上有所不同。原创 2024-04-16 15:25:28 · 308 阅读 · 0 评论 -
c++中的单继承、多继承和虚拟继承
在C++中,继承是面向对象编程的重要特性之一,允许一个类(称为派生类)从另一个类(称为基类)继承成员和方法。单继承、多继承和虚拟继承是三种不同的继承方式,它们有不同的特点和用途。原创 2024-04-16 15:19:55 · 330 阅读 · 0 评论 -
c++中的菱形继承问题详细说明
菱形继承问题是指在多重继承中出现的一种特定情况,其中一个派生类同时从两个不同的基类继承,而这两个基类又都继承自同一个共同的基类。这种情况形成了一个菱形的继承结构,因此被称为菱形继承问题。原创 2024-04-16 15:17:15 · 329 阅读 · 0 评论 -
c++ lambda表达式的使用方法
C++11引入了lambda表达式,它是一种轻量级的匿名函数,允许我们在需要函数的地方直接定义函数,而无需专门声明函数。lambda表达式的语法简洁,并且非常灵活,可以捕获外部变量,具有与普通函数相似的功能。原创 2024-04-16 11:16:30 · 215 阅读 · 0 评论 -
c++中ranges::min()说明和使用
在C++中,函数是C++20引入的一个标准库函数,用于在一个范围内找到最小值。原创 2024-04-16 13:53:25 · 352 阅读 · 0 评论 -
c++指针和引用的详细介绍和使用
指针是一个变量,其存储的是另一个变量的。指针变量本身有自己的内存地址和数值,指向另一个变量的地址。指针使用来声明和访问,使用解引用操作符来访问指针所指向的值。指针可以被重新赋值来指向不同的内存地址,也可以是空指针(nullptr或NULL),即指向空地址。指针需要手动分配和释放内存,使用和操作符。指针通常用于动态内存分配、数组、函数指针等情况,以及需要在运行时改变目标的情况。引用是一个别名,它给现有变量起了一个,使得可以通过该别名来访问原始变量。引用不是一个对象,而是现有变量的别名。引用使用来声明和访问,不原创 2024-04-16 10:06:09 · 1320 阅读 · 0 评论 -
c++中pair的使用方式以及一些常见的操作
在很多算法中都很有用,例如在排序算法中,可能想要保持每个元素与其索引的关联,可以使用。是一个标准库模板,用于将两个值作为一个单元进行存储。:这是一种方便的方法,它接受两个参数并返回一个初始化好的。中的元素就被排序了,但是索引信息仍然与值关联着。有时候函数需要返回多个值,此时可以使用。成员变量访问,第二个元素可以通过。:通过提供两个值来直接初始化。来将两个值组合成一个有序对。对象的第一个元素可以通过。可以使用多种方式创建。原创 2024-04-15 13:15:52 · 712 阅读 · 0 评论 -
c++容器说明和基本使用方法(最全/全部内容)
vectordequelistarraystringvector和array是C++11新增类型。与内置数组相比,array更安全易用。没有size操作。原创 2024-04-15 10:41:46 · 972 阅读 · 0 评论