自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 The Differences of static Variables Between in C++ and Java

static。

2024-04-06 15:07:02 552 1

原创 priority_queue in C++ STL

【代码】priority_queue in C++ STL。

2024-03-13 13:45:48 680

原创 C++ && Java : Type Promotion and Pointer References Explained

In the world of programming, understanding how different languages handle data types and memory references is crucial for writing efficient and error-free code. This blog post will delve into the nuances of type promotion in Java and C++, and the concept o

2024-03-12 14:01:53 578 2

原创 Thoughts on “else if“ vs “else“

这是由于递归的调用和条件判断的交互,使得编译器无法确定函数会在哪个分支结束。,但编译器可能无法正确识别这一点,因为它可能无法确定在这个分支中一定会执行到。最后一个"else if" 分支是问题所在。在这个分支中,应该返回。分支,这样就明确了在所有情况下都会返回一个值。语句,以确保在所有情况下都返回一个值。分支末尾添加一个显式的。

2023-09-18 19:46:04 80

原创 C/C++ 与 Python 之间的异同

随着Python的发展,人们越来越希望能够利用已有的C代码和现有的C库,以满足更复杂的需求。总的来说,C与Python之间的渊源可以归结为Python的设计目标和发展需求,以及对性能和底层访问的追求。通过C语言的集成和底层支持,使得Python成为了一种功能强大且灵活的编程语言。为了提高性能和效率,许多Python库底层的关键部分都使用C语言来编写,以获得更好的执行速度。因为母语是C(确信),在Python的学习过程发现了很多有意思的点,或者平时写C没有注意到的一些异同,记录下来,当作消遣or笔记。

2023-07-16 01:08:49 223 1

原创 C++静态成员函数与常成员函数

而静态成员函数没有 this 指针,只能访问静态成员(包括静态成员变量和静态成员函数)。普通成员变量占用对象的内存,静态成员函数没有 this 指针,不知道指向哪个对象,无法访问对象的成员变量,也就是说静态成员函数不能访问普通成员变量,只能访问静态成员变量。普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员。普通成员函数必须通过对象才能调用,而静态成员函数没有 this 指针,无法在函数体内部访问某个对象,所以不能调用普通成员函数,只能调用静态成员函数。

2023-06-30 11:08:14 261

原创 C++,类不能实例化对象的情况

如果一个类被声明为抽象类,它包含至少一个纯虚函数(Pure Virtual Function),那么该类就不能实例化对象。纯虚函数是通过在函数声明中使用 "= 0" 来指定的,它们没有具体的实现,需要在派生类中实现。:如果一个类的默认构造函数被删除(deleted),则无法使用默认构造函数创建该类的对象。:如果一个类从纯虚基类派生而来,但没有重写基类中的纯虚函数,那么派生类也将成为一个抽象类,不能实例化对象。:如果一个类只是作为类型别名使用,而不是作为具体的实现类,那么不能直接实例化该类的对象。

2023-06-30 09:54:56 1018

原创 C++关于引用的注意

变量只在函数内部存在,离开函数后就会被销毁,所以返回的引用已经失效。因此,对于 return b;引用,以确保不会对其进行修改。同时,我们还在成员函数定义中加入了。修饰符,表示该函数不会修改成员变量,而且可以在。语句而言,编译器应该会给出有关错误的警告和提示。为了修复这个问题,你可以改为返回一个 Time。类型的对象,而不是返回一个 Time。需要注意的是,在本例中,我们还将参数。它返回了一个指向局部变量 b。函数中的返回值类型 Time&

2023-06-06 22:41:31 29

原创 C++关于类的一些补充

的私有成员,而不管这些对象是否是当前对象,包括传递给函数作为参数的对象。这种访问方式保证了数据的封装性,同时提供了更好的代码重用性和可读性。虽然构造函数在声明、定义时都没有标出返回类型,但其本质上是一个返回。类的成员函数可以访问同一类的。

2023-05-23 22:56:37 47

原创 关于new运算符的一些思考

在C++中,new int[5]分配了一个足以存储5个整数的内存块,而new int(5)则为一个初始值为5的单个整数分配了内存。下面是这两者之间的一些关键区别:存储:new int[5]在连续的内存中分配了一个5个整数的数组,而new int(5)在单独的内存中分配了一个单一的整数。访问:使用new int[5]后,你可以使用数组索引访问数组中的每个元素,比如ptr[0],ptr[1],等等。在使用new int(5)后,你可以使用指针本身直接访问存储在ptr中的单个整数,像*ptr。

2023-05-18 16:55:08 371 3

原创 C++模板实例化和具体化

不要使用Swap()模板来生成函数定义,而应使用专门为int类 型显式地定义的函数定义”实现了这种特性的编译器看到上述声明后,将使用Swap()模板生成一个使用int类型的实。在代码中包含函数模板本身并不会生成函数定义,它只是一个用于生成函数定义的方案。最初,编译器只能通过隐式实例化,来使用模板生成函数定义,但现在C++还允许。“使用Swap()模板生成int类型的函数定义。模板并非函数定义,但使用参数的模板实例是函数定义。编译器使用模板为特定类型生成函数定义时,得到的是。与显式实例化不同的是,

2023-05-17 22:25:26 102 1

原创 C++中关于重定义的一些思考

使用extern关键字:如果需要在多个源文件中使用相同名称的全局变量或函数,则可以在其中一个源文件中定义它们,并在其他源文件中使用extern关键字声明它们。静态全局变量的定义:静态全局变量的作用域仅限于定义它的源文件中,因此如果多个源文件中定义相同名称的静态全局变量,每个文件中都会有一个独立的实例。内联函数的定义:内联函数允许在头文件中定义,并且可以在多个源文件中包含该头文件,因为编译器会将多个定义合并成一个。使用命名空间:使用命名空间可以将变量和函数封装到单独的作用域中,从而减少名称冲突的可能性。

2023-05-17 21:54:07 224 1

原创 C++中指向函数的指针

C++中指向函数的指针可以用来存储函数的地址,并且可以通过这个指针调用该函数。的函数,该函数输出一条简单的问候语。然后,我们定义了一个指向函数的指针。在上面的代码中,我们首先定义了一个名为。是指向函数的指针变量名,是函数返回值的类型,

2023-05-17 20:47:43 132 1

原创 函数遇到空行就终止输入的常见处理方式

这种输入数据验证和错误处理方式可以有效地防止程序因为无效的输入数据而崩溃或者陷入死循环等问题,提高程序的稳定性和健壮性。对象的状态是否出错,如果出错则表示输入数据类型不匹配或者其他错误,需要进行相关的错误处理。语句则会清除输入流中之前已经读取但没有被使用的无效字符,直到遇到换行符‘最后,输出提示信息并退出当前数据处理的循环。对象的状态复位,以便重新开始输入数据。

2023-05-17 20:22:19 420 1

原创 C++中,如何知道一个string数组的长度?

成员函数来获取一个 string 数组的长度。类型占用的字节数,两者相除即可得到数组的长度。将 a 初始化为与 b 相同的长度。在C++中,我们可以通过使用。返回整个数组占用的字节数,

2023-05-17 17:31:45 1695

原创 成员函数重载能否替代友元函数的功能?

友元函数允许一个非类成员函数访问类的私有成员变量和函数,而成员函数可以直接访问类的私有成员变量和函数。如果一个函数只需要访问一个类的私有成员变量或函数,那么将其定义为该类的友元可能会显得过于冗长。此时,可以考虑将该函数定义为该类的成员函数,以便直接访问私有成员变量和函数。例如,如果一个函数需要访问多个类的私有成员变量和函数,则不能将它定义为任何一个类的成员函数。在这种情况下,友元函数是实现所需行为的最佳选择。在某些情况下,成员函数重载可以提供与友元函数相同的功能,但在其他情况下,友元函数可能是更好的选择。

2023-05-14 14:25:39 42

原创 C++中的新枚举enum class可以看做一个特殊的,嵌套在类里面的类类型吗?

C++11中的enum class可以被看作是一个特殊的类类型,它将枚举值封装在一个命名空间内,并且可以在需要时显式地转换为整数类型。与传统的枚举类型相比,enum class提供了更好的类型安全性和可读性。另外,enum class也支持嵌套在类、结构体或命名空间中,使得命名冲突的可能性更低,同时也提高了代码的组织性。

2023-05-14 14:24:45 286

原创 C++中,无法对名称空间的成员直接进行删减

在 C++ 中,我们不能直接删除名称空间中的成员。名称空间是一个逻辑上的概念,用于将一组相关的函数、类、变量等组织到一起,以便于管理和使用。请注意,这种方法实际上并没有从原始名称空间中删除成员,而是创建了一个新的名称空间,其中排除了要删除的成员。因此,如果你有其他代码使用原始名称空间中的成员,它们仍然可以访问到这些成员。声明可以将名称空间中的成员引入到当前作用域中,这样就可以像使用普通变量一样来访问它们,并且可以在需要时使用。关键字重新定义名称空间,并在新的名称空间中排除要删除的成员。

2023-05-12 08:24:31 44 2

空空如也

空空如也

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

TA关注的人

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