自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++文件操作

我们知道,程序在运行时会产生一些临时数据,而这些数据会随着程序运行结束被释放,不能持久的保存下来,不便于后期查看,在C++中可以通过文件来实现数据持久化。C++中对文件的操作需要包含头文件:<ofstream>写操作,<ifstream>读操作,<fstream>读写操作文本文件:文件以文本的ASCLL码的形式存储在计算机中二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们打开方式解释ios::in为读文件而打开文件ios::out为写文件而打开文件。

2024-05-17 09:02:33 547 1

转载 C++——深拷贝和浅拷贝

C++——深拷贝和浅拷贝

2024-05-15 09:07:25 24

原创 C++中this指针的使用

注意:在第11行代码处返回方式是以引用的方式返回,当p2调用PersonAddage()函数时,返回的是p2本身,因此可以实现p2.PersonAddage(p1).PersonAddage(p1).PersonAddage(p1);Q:我们知道,在C++中每一个非静态成员函数只会产生一份函数实例,这就意味着这个函数示例会被多个同类型的对象调用,那么问题来了,这个函数是如何区分那个对象调用了自己呢?A:为了解决上述问题,C++提供了特殊的对象指针来指向被调用的成员函数所属的对象。

2024-05-15 08:28:01 295

原创 C++多态:纯虚函数和抽象类、虚析构和纯虚析构

在上述代码中,子类Cat中有在堆区存放的成员变量m_name,当父类中的析构函数不是虚构函数或纯虚析构函数时,delete animal;在使用多态时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码,此时就用到了虚析构函数,只需将父类中的析构函数改为虚析构函数或者纯虚析构函数就可以解决父类指针无法释放子类对象的问题。因此在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的函数,因此可以将虚函数改为纯虚函数。类名::~类名(){}`

2024-05-12 09:06:34 1291 1

原创 深度剖析C++中多态的原理

代码中第13行的doSpeak函数需要传的参数是Animal类型,而在20行传递的参数是Cat类型,这说明在调用doSpeak函数的时候,父类的指针指向了子类的对象,这时就发生了多态。从上图可以很清洗的看出Animal类的内部结构,当注释掉子类的重写代码(第11行)时,利用工具查看Cat的内部结构,如下图,此时Cat继承的还是Animal的函数。Cat类内部的结构为:子类vfptr(虚函数指针)指向子类vftable(虚函数表),其中vftable记录了子类虚函数的地址。2)子类重写父类的虚函数。

2024-05-10 16:48:02 794 1

原创 c++学习总结:继承

对于二义性有一点非常容易混淆:当继承虚基类的两个派生类中没有与虚基类同名的成员时,当对虚基类成员操作时,两个派生类操作的是同一块内存空间,此时继承两个派生类的子类访问成员是无需加作用域。当两个派生类都有自己的同名成员时,虚基类和两个派生类都有各自的存储同名成员的内存空间,此时继承两个派生类的子类访问同名成员时需要加作用域。c++中继承方式有三种,分别为:public公共继承,protected保护继承,private私有继承。:子类虽然不可以访问父类的私有属性,但确继承了父类的私有属性,具体请参考。

2024-05-10 08:42:50 1959 1

原创 关于c++中引用的学习总结

(这也是指针中“解引用”一词的由来,相信这个词困扰了很多初学者,我当时就百思不得其解)。下图时运行结果,当对引用b进行修改时,a和b都发生了改变,这也证明了引用只是给变量起了一个新的名字,他们代表的是同一块内存空间。当运行上述代码后,编译器会报错,如下图所示:(因为引用一旦初始化,则不能再修改)1、 在c++中引用的本质实际上是在内部实现一个指针常量,例如在程序中写入。2、在c++中引用就是为变量起一个新的名字,如。),当编译器发现b是一个引用时,会在内部将此条语句转换为。在上述代码中第七行中(

2024-05-09 06:34:35 487 1

空空如也

空空如也

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

TA关注的人

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