自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++11中的右值引用

定义:右值也是一个表示数据的表达式,如:字面常量、表达式返回值,函数返回值(这个不能是左值引用返回)等等,右值可以出现在赋值符号的右边,但是不能出现出现在赋值符号的左边,右值不能取地址。右值引用就是对右值的引用,给右值取别名。不能被赋值,不能出现在赋值表达式的左侧。通常是字面量、表达式的求值结果,或者是即将销毁的对象。只能出现在赋值表达式的右侧,或者作为函数调用的参数等。int main()// 以下几个都是常见的右值10;x + y;fmin(x, y);

2024-07-30 22:49:16 836

原创 C++中的继承与多态 历史最详细版本(3)

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了 Person。Person对象买票全价,Student对象买票半价。在继承中要构成多态有两个条件:1. 必须通过基类的指针或者引用调用虚函数。2. 被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口 类),抽象类不能实例化出对象。派生类继承后也不能实例化出对象,只有重写纯虚函数,派生 类才能实例化出对象。

2024-07-08 07:00:00 419

原创 C++中的继承与多态 历史最详细版本(2)

这篇博客将着重讲解C++中的单继承,菱形继承和菱形虚拟继承。

2024-07-07 14:22:50 349

原创 C++中的继承与多态 历史最详细版本(1)

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继 承是类设计层次的复用。public:protected:// 姓名// 年龄// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。这里体现出了Student和Teacher复用了Person的成员。

2024-07-07 13:42:54 641

原创 C++中的浅拷贝和深拷贝

浅拷贝是默认的拷贝行为,它仅复制对象的成员变量的值。如果对象中包含指针,浅拷贝只会复制指针的值,而不是指针所指向的内存。这意味着原始对象和拷贝对象将共享同一块内存。另一种解释:浅拷贝:也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以为还有效,所以当继续对资源进项操作时,就会发生发生了访问违规。

2024-06-13 16:14:38 327 3

原创 STL之string类的介绍

C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。

2024-06-12 15:58:08 1014

原创 C++中类的默认成员函数(构造函数,析构函数和拷贝函数)

也就是说,默认的拷贝构造是无法解决我们刚刚两个指针指向同一块空间的问题的,所以我们要自己写一个拷贝构造函数,才可以让被拷贝出来的对象与原对象独立。

2024-04-10 23:18:08 774 7

原创 C++学习之初学类与对象

/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员;类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。

2024-04-10 15:50:35 890 3

原创 C++入门学习第一课

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。// bit是命名空间的名字,一般开发中是用项目名字做命名空间名。// 1. 正常的命名空间定义// 命名空间中可以定义变量/函数/类型注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中2.2 命名空间使用命名空间中成员该如何使用呢?比如:int val;//2. 命名空间可以嵌套int a;int b;int c;

2024-03-29 18:31:51 584 1

原创 初学链接与编译

想知道翻译环境中源代码被转换为可执行的机器指令的原理,就要先了解翻译环境中做的事情。翻译环境是由编译和链接两个大的过程组成的,编译又分为预处理、编译、汇编三个过程,下面直接以多个C语言一起构建项目的过程进行讲解。多个.c⽂件单独经过编译出编译处理⽣产对应的⽬标⽂件。注:在Windows环境下的⽬标⽂件的后缀是.obj ,Linux环境下⽬标⽂件的后缀是.o。多个目标文件和链接库⼀起经过链接器处理⽣成最终的可执⾏程序。链接库是指运行时库(它是支持程序运行的基本函数集合)或者第三方库。

2024-01-16 15:41:44 772 2

原创 初学动态内存分配

我们已经掌握的内存开辟⽅式有上述开辟空间方法的特点是开辟空间的大小固定,并且数组在声明时必须指明长度,长度一旦确定就无法更改。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知 道,那数组的编译时开辟空间的⽅式就不能满⾜了。C语⾔引入了动态内存开辟,让程序员⾃⼰可以申请和释放空间,就⽐较灵活了。

2023-12-07 15:19:54 26 1

原创 IT小白的第一条博客

孩子不懂事写着玩的

2023-10-11 19:21:42 39

空空如也

空空如也

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

TA关注的人

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