自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 自己写一个类支持迭代器功能

这个设计展示了泛型编程、资源管理(动态内存分配与释放)、操作符重载以及迭代器模式在C++中的应用,既灵活又高效,同时也遵循了RAII(Resource Acquisition Is Initialization)原则来管理资源。:尝试在数组末尾添加一个元素,如果数组未满则成功插入并返回true,否则返回false。:提供两种方式获取迭代器,一种是从头开始遍历整个数组,另一种是指定范围内的遍历。方法获取迭代器,并利用这个迭代器遍历数组元素,展示如何使用迭代器进行数组遍历。:返回数组的实际元素数量。

2024-06-05 14:42:59 121

原创 关于模板类的友元函数的运算符重载的问题

在C++模板中,类模板内部声明友元函数时,如果直接使用模板参数`T`来声明友元函数,这会导致友元函数自身也成为模板函数的一个特例化版本,从而只能访问特定类型`T`的`Array`实例。这样的设计使得`operator<<`重载更加通用和灵活,能够处理`Array`的任何实例类型,只要类型`U`与所操作的`Array`实例类型匹配即可。这将限制友元函数只能与确切的`T`类型`Array`对象一起工作,而使用`U`允许该友元函数成为泛型,能够与任何类型的`Array`实例协同工作,提高了代码的复用性和灵活性。

2024-06-05 11:34:24 224

原创 一文详解类的静态成员

为了实现类的对象之间的数据共享,同时又能够保证数据的安全, C++提出了静态成员的概念一个类的所有对象之间共享的数据, 而不是所有对象共享的数据(其他类的对象不能共享的)保证数据的安全(不能让别人随意修改)在一个类的声明中, 用 static 修饰 类的成员 ,称之为 类的静态成员静态成员变量(静态数据成员)静态成员函数例子:private:double r;

2024-04-11 10:08:18 972

原创 Callable 可调用对象 lambda表达式 “匿名函数“

val1, val2, ...] 表示以值传递的方式导入val1,val2等指定的多个外部变量,顺序无关。[&val1, &val2, &...] 表示以引用传递的方式导入val1,val2等指定的多个外部变量,[ val1, &val2, ... ] 表示以值传递的方式导入val1, 以引用传递的方式导入val2。[=, &val1] 除了val1是引用传递的方式导入以外,其他的都是值传递的方式导入。"外部变量",指的是 和 lambda表达式 位于同一个作用域内的所有的局部变量。

2024-04-09 18:09:55 680

原创 头文件中声明static修饰的函数为什么能在其他源文件中使用

1、如果在其他多个其他源文件中包含这个头文件,并使用static修饰的函数,编译当然会直接报错,因为链接器找不到函数的定义2、如果在其他多个其他源文件中包含这个头文件,但没有使用static修饰的函数,编译可以正常通过总之,在头文件中声明static函数违反了头文件的设计初衷,可能导致代码膨胀、维护困难和其他潜在问题。

2024-04-02 17:04:45 345 1

原创 const修饰整个函数、返回值、参数

当然,下面是关于const。

2024-04-02 16:07:10 190 1

原创 C/C++简单链式调用

(Method Chaining)是一种代码编写技巧,可以让代码更加简洁和易读。它的主要思想是,把多个方法调用链式连接起来,一个方法的返回值可以当作下一个方法的参数。在C++中,链式调用通常指的是连续调用同一个对象的成员函数,每次调用后都返回该对象的引用,从而允许进一步的调用。

2024-04-01 14:41:22 217

原创 C++无名命名空间namespace(匿名命名空间)和全局静态变量

也就是说,即使您在代码中写了两个看起来独立的匿名命名空间块,编译器也会将它们视为同一个命名空间的连续部分。在C++引入无名命名空间后,在文件中使用无名命名空间来定义变量和函数,也能起到与静态声明一样的效果,而且不需要每个变量和函数单独加static进行声明。2. 在C++中,当你使用无名命名空间(也称为匿名命名空间)时,其中的所有变量和函数默认具有内部链接性(internal linkage),这意味着它们只在定义它们的翻译单元(translation unit,通常是单个源文件)中可见。

2024-03-29 15:07:56 514 1

原创 C++可直接 类名:: (作用域符)访问的成员及用typename区分AA::BB形式

在C++中,类的公有成员(包括公有数据成员、公有成员函数以及公有类型别名等)确实可以通过类名加作用域解析运算符()来直接访问,前提是该公有成员是静态的(对于数据成员和成员函数)或者是类型别名。对于非静态的公有数据成员和成员函数,你需要一个类的实例(对象)来访问它们。

2024-03-22 10:15:14 324 1

原创 文件描述符、文件指针、I/O常用函数

通过将文件指针移动到文件中的特定位置,程序可以读取或写入文件中的数据。当程序打开一个现有文件或者创建一个新文件时,内核会返回一个文件描述符。文件描述符是一个非负整数,在Unix和类Unix系统中,它唯一标识了操作系统中某个被打开的文件或设备。当打开一个文件时,C语言中的标准库函数(如fopen())会返回一个指向该文件的文件指针。在C语言中,文件指针是一个特殊类型的指针,用于指向文件的第一个字节。需要注意的是,在使用文件指针时,应该始终确保在操作完成后关闭文件。这可以通过使用fclose()函数来完成。

2023-11-07 15:00:21 28

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除