![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
黑马C++
黑马C++
小啊陈~
这个作者很懒,什么都没留下…
展开
-
类与对象-继承-同名成员处理
【代码】类与对象-继承-同名成员处理。原创 2024-07-10 17:26:53 · 144 阅读 · 0 评论 -
类与对象-继承-构造和析构顺序
继承中先调用父类构造函数,再调用子类构造函数,析构顺序与构造顺序相反。原创 2024-07-10 15:53:52 · 162 阅读 · 0 评论 -
类与对象-继承-继承中的对象模型
【代码】类与对象-继承-继承中的对象模型。原创 2024-07-10 00:19:51 · 75 阅读 · 0 评论 -
类和对象-继承-继承方式
在C++中,有三种主要的继承方式:公有继承(public inheritance)、私有继承(private inheritance)、保护继承(protected inheritance)。每种继承方式都有其特定的访问权限规则和使用场景。原创 2024-07-08 17:57:05 · 292 阅读 · 0 评论 -
类和对象-C++运算符重载-函数调用运算符重载
总结来说,匿名函数对象在实现简单的函数对象功能时非常方便,能够提高代码的可读性和简洁性,同时避免定义不必要的命名和额外的类对象。当一个函数对象只需要使用一次,没有必要为其命名,使用匿名函数对象可以避免定义额外的类或对象,减少代码量和复杂度。匿名函数对象的创建和使用可以在一行代码中完成,非常适合于简单的函数对象调用,不需要额外的命名和定义步骤。匿名函数对象可以在使用完毕后立即销毁,不会占用额外的命名空间,从而使代码更为简洁和清晰。匿名函数对象的使用的好处。原创 2024-07-08 00:27:44 · 248 阅读 · 0 评论 -
类和对象-C++运算符重载-关系运算符重载
【代码】类和对象-C++运算符重载-关系运算符重载。原创 2024-07-07 14:22:05 · 177 阅读 · 0 评论 -
类和对象-C++运算符重载-赋值运算符重载
在C++中,进行内存管理时,特别是对动态分配的资源(如指针所指向的内存)进行释放时,最好先进行空指针判断,然后再释放指针指向的内存。然而,没有定义赋值运算符重载,这意味着默认的赋值操作符将会进行浅拷贝,即简单地复制指针而不是创建新的动态内存副本。在 C++ 中,当类中存在动态分配的资源时,需要特别注意赋值运算符的重载,确保进行适当的资源管理,避免出现内存泄漏或双重释放的问题。如果一个对象多次被赋值,而在每次赋值前没有释放之前分配的内存,就会造成内存泄漏。具体来说,在赋值运算符重载函数中,先判断。原创 2024-07-07 00:44:14 · 611 阅读 · 0 评论 -
类和对象-C++运算符重载-递增运算符重载
因此,为了允许对象的连续递增操作、提高性能、符合语言习惯和预期,重载前置递增运算符++应当返回对象类型的引用MyInteger&。这样做可以确保代码更加高效、清晰和符合 C++ 的编程习惯。对于代码MyInteger operator++(int),为什么不用地址引用呢在重载后置递增运算符的函数中,为什么不使用地址引用(即)而是使用对象值的方式()呢?后置递增运算符需要接受一个额外的int类型的参数,通常用来区分前置递增运算符和后置递增运算符的重载版本。原创 2024-07-06 22:58:08 · 350 阅读 · 0 评论 -
类和对象-C++运算符重载-左移运算符重载
返回引用而不是值的另一个原因是为了避免不必要的对象复制。如果每次<<运算符返回的是ostream对象而不是引用,那么在每次函数调用结束时会产生一个临时的ostream对象副本,这不仅效率低下,而且破坏了期望的输出顺序。因此,返回ostream&类型的引用是为了支持链式调用和流式输出的正确性和效率。这也是 C++ 中惯例和推荐的做法。为什么要将 m_A 和 m_B 私有化?将数据成员声明为私有的意味着它们只能被Person类的成员函数访问,而外部代码不能直接访问或修改这些成员。原创 2024-07-06 19:14:02 · 580 阅读 · 0 评论 -
类和对象-C++运算符重载-加号运算符重载
【代码】类和对象-C++运算符重载-加号运算符重载。原创 2024-07-05 14:05:25 · 112 阅读 · 0 评论 -
类和对象-友元-成员函数做友元
【代码】类和对象-友元-成员函数做友元。原创 2024-07-04 17:45:10 · 227 阅读 · 0 评论 -
类和对象-友元-友元类
【代码】类和对象-友元-友元类。原创 2024-07-02 22:23:43 · 200 阅读 · 0 评论 -
类和对象-友元-全局函数做友元
在全局函数中为什么要传入指针呢?原创 2024-07-02 20:52:05 · 433 阅读 · 0 评论 -
类和对象-对象特性-this指针的用途
引入标准 C++ 库中的所有头文件,这样可以确保代码中使用的标准库中的功能都能够被正常引用。指针,它指向被调用的成员函数所属的对象,用于区分成员变量和形参等。函数中,演示了如何使用链式调用的方式调用成员函数。调用都会返回对象本身的引用,从而可以连续调用该成员函数。对象的年龄加到当前对象的年龄上,并返回对象本身的引用。:在构造函数中使用了成员初始化列表,通过。,用于初始化对象的年龄成员变量。输出对象的成员变量,例如。类中定义了一个构造函数。的值赋给对象的成员变量。:定义了一个成员函数。:在成员函数中使用了。原创 2024-04-23 11:52:31 · 295 阅读 · 0 评论 -
类和对象-对象特性-成员变量和成员函数分开存储
【代码】类和对象-对象特性-成员变量和成员函数分开存储。原创 2024-04-21 09:00:34 · 127 阅读 · 0 评论 -
类和对象-对象特性-静态成员函数
静态成员函数不依赖于具体的对象实例,而是属于类本身,因此可以通过类名直接调用,也可以通过对象调用。静态成员函数的特点是只能访问静态成员变量和其他静态成员函数,不能直接访问非静态成员变量或非静态成员函数。类的静态成员变量,它属于类而不是类的对象。静态成员变量在内存中只有一份拷贝,被所有类的对象共享。静态成员变量必须在类外初始化,通常在类的实现文件中进行初始化。)成员函数,只能在类的内部访问,外部无法调用。,展示了如何通过对象来访问静态成员函数。)成员变量,可以被外部访问。,并调用对象的成员函数。原创 2024-04-21 00:45:59 · 240 阅读 · 0 评论 -
类和对象=对象特性-静态成员变量
静态成员变量属于整个类,而不是类的单个对象。在类内部声明静态成员变量,但是需要在类外部初始化。:与普通成员变量类似,静态成员变量也可以设置为私有(private)或者公有(public)。进行静态成员变量的初始化。静态成员变量只会被初始化一次,即使创建了多个类的对象。被声明为私有静态成员变量,因此无法在类外部直接访问,如。原创 2024-04-20 16:29:48 · 202 阅读 · 0 评论 -
类和对象-对象特性-类对象作为类成员
当其他类对象作为本类成员,构造时候先构造类对象,再构造自身,析构的顺序与构造相反。原创 2024-04-20 10:36:41 · 118 阅读 · 0 评论 -
类和对象-对象特性-初始化列表
【代码】类和对象-对象特性-初始化列表。原创 2024-04-20 00:33:39 · 158 阅读 · 0 评论 -
类和对象-对象特性-深拷贝和浅拷贝
【代码】类和对象-对象特性-深拷贝和浅拷贝。原创 2024-04-20 00:16:57 · 311 阅读 · 0 评论 -
类和对象-对象特性-构造函数调用规则
【代码】类和对象-对象特性-构造函数调用规则。原创 2024-04-19 23:38:47 · 530 阅读 · 0 评论 -
类和对象-对象特性-拷贝构造函数调用规则
【代码】类和对象-对象特性-构造函数调用规则。原创 2024-04-19 21:22:12 · 210 阅读 · 0 评论 -
类和对象-对象特性-函数的分类以及调用
拷贝构造函数:用于在创建新对象时,以已有对象的值作为初始值。在本代码中,Person类中定义了拷贝构造函数,用于在创建p3和p6时,以p2和p5的值作为初始值。构造函数:在类中定义的函数,用于初始化对象的数据成员。在本代码中,Person类中定义了无参构造函数、有参构造函数和拷贝构造函数。析构函数:在对象销毁时自动调用,用于释放对象占用的资源。在本代码中,Person类中定义了析构函数,用于在对象销毁时输出一条信息。这段代码主要涉及了C++中的构造函数和拷贝构造函数的使用,以及对象的初始化方式。原创 2024-04-18 15:21:31 · 202 阅读 · 0 评论 -
类和对象-对象特性-构造函数和析构函数
析构函数的虚函数:如果一个类可能被其他类继承,那么应该将析构函数声明为虚函数,以确保在删除子类对象时能够正确调用父类的析构函数。析构函数的默认实现:如果没有显式定义析构函数,编译器会生成一个默认的析构函数,它什么也不做。析构函数的显式定义:如果需要在析构函数中进行资源的释放等操作,可以显式定义析构函数。析构函数的继承:如果一个类继承了另一个类,那么它的析构函数会自动调用父类的析构函数。析构函数的调用时机:当对象的生命周期结束时,即对象被销毁时,析构函数会自动调用。原创 2024-04-17 23:58:37 · 234 阅读 · 0 评论 -
类和对象-封装-设计案例2-点和圆的关系
这个函数接受一个圆对象和一个点对象作为参数,首先计算了点到圆心的距离的平方,然后与圆半径的平方进行比较,以确定点与圆的位置关系。根据距离的比较结果输出相应的信息,如点在圆上、圆内或圆外。首先,定义了两个类:Point(点)和Circle(圆)。Point类包含了一个点的坐标信息,而Circle类包含了圆的半径和圆心(使用了Point类的对象表示)。然后,在main()函数中创建了一个圆对象c和一个点对象p,并设置它们的相关属性。圆的半径设置为10,圆心的坐标为(10, 0),点的坐标为(8, 8)。原创 2024-04-17 21:25:43 · 239 阅读 · 0 评论 -
类和对象-封装-设计案例1-立方体类
【代码】类和对象-封装-设计案例1-立方体类。原创 2024-04-17 15:23:54 · 526 阅读 · 0 评论