
C++
文章平均质量分 95
恒539
一个比较懒的菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈希拓展——位图
搞清楚了怎么存储一个比特位,我们就可以创建成员变量,并定义构造函数。template<size_t N> // N表示需要比特位的个数bitset()// 我们需要提前开好空间, 一个整型可以存储32bit// 为了避免无法整除导致数据位不够,我们直接+1。private:在这里,我使用容器vector存储整型数据,以此间接存储一定数量的比特位。并且因为C++标准库中有bitset这一接口,我们需要命名空间。接下来,我们需要实现一些接口。基本的接口无外乎增、删、查、改四类。原创 2025-04-23 07:30:00 · 1629 阅读 · 0 评论 -
C&C++内存分布
这篇文章介绍了C++中的内存管理,重点讲解了动态内存管理的工具new和delete。与C语言的malloc和free不同,new和delete在处理自定义类型时会自动调用构造函数和析构函数。文章还介绍了定位new表达式,用于在已分配的内存中调用构造函数进行初始化。原创 2025-02-07 11:05:46 · 1219 阅读 · 0 评论 -
触摸C++的门槛——类和对象(下)
C++的类和对象在此就要告一段落,对于类和对象,并不是短短几篇文章就能够理解透彻的,日后在使用C++的过程中,我们需要不断去认识和理解C++的类和对象,不断思考,才有可能窥见其真正的模样。在类外访问类中的成员时会受到访问限定符的限制:除了 public 外,其余权限修饰的成员都不能在类外进行访问,但是C++中的友元声明可以帮助我们突破访问限定符的限制。其次,内部类也不会包含在类 A 的大小中,尽管它是内部类,但是也仅仅是个声明,除非我们在 A 中定义 B 的对象,否则内部类并不会影响类 A 的大小。原创 2025-01-26 12:41:31 · 908 阅读 · 0 评论 -
初始化列表探秘
前两个我们已经解释过了,对于第三个,由于是自定义类型成员,如果我们不在初始化列表中进行初始化,那么编译器会自动调用其默认构造函数,然后就会报错。你可以自行尝试。不过使用引用成员变量时需要注意,例如上面的代码,成员变量 _b 引用的是形参 b,在构造函数结束时,b 也被销毁,_b 就是一个“野引用”了!有了初始化列表,当我们在类中有自定义类型的成员变量时,我们就可以传入参数来调用更多参数的构造函数,来创建更适宜的自定义类型的成员变量。原创 2025-01-22 20:48:45 · 748 阅读 · 0 评论 -
类和对象(中)——补充
这篇文字主要补充了C++类和对象的相关知识,重点介绍了剩下的默认成员函数,包括赋值运算符重载、前置和后置++运算符重载、const成员函数以及取地址运算符重载。通过具体示例和代码,讲述了这些默认成员函数的作用、使用方法以及注意事项,帮助读者更好地理解和运用C++类和对象。此外,还简要提到了权限放大和缩小的问题,以及在特定情况下需要自定义默认成员函数的情况。原创 2025-01-21 09:51:14 · 1015 阅读 · 0 评论 -
触摸C++的门槛——类和对象(中)
文章聚焦C++类的默认成员函数,包括构造函数、析构函数和拷贝构造函数。构造函数用于对象初始化,其特点为与类名相同、无返回值等,但编译器自动生成的可能无法满足特定需求,如成员变量为指针时。析构函数用于清理对象资源,类名前加“~”,无参数,系统自动生成的对基本类型成员不做处理。拷贝构造函数用于创建新对象时的成员拷贝,参数为类引用,可避免无穷递归,但系统自动生成的可能导致浅拷贝问题。文章通过实例分析了这些函数的使用场景和注意事项,指出在特定情况下需自定义这些函数,以确保程序的正确性和稳定性。原创 2025-01-18 09:05:43 · 949 阅读 · 0 评论 -
触摸C++的门槛——类和对象(上)
本文深入剖析编程思想,对比面向过程与面向对象差异,强调C++面向对象特性。指出C++结构体可升级为类,详述类声明要点,包括访问限定符权限、成员函数声明定义分离及内联特性,给出成员变量修饰建议。深入讲解封装,阐述类作用域及搜索顺序。明确类实例化及对象大小计算规则,强调对象大小仅与成员变量相关,解释空类大小为1字节原理。剖析this指针,由编译器自动传入,可在函数内使用,类型为类的类型* const,存储于栈中。原创 2025-01-16 15:17:31 · 1019 阅读 · 0 评论