自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

个人技术博客

计算机相关技术

  • 博客(13)
  • 收藏
  • 关注

原创 第十六章 - string类和标准类模板

一,智能指针模板1.1,什么是智能指针? 智能指针是行为类似于指针的类对象,使用智能指针可帮助管理动态分配的内存与使用new创建的对象。1.2,智能指针模板 C++中提供的智能指针模板有auto_ptr、unique_ptr、shared_ptr和weak_ptr。可以将new获得的地址赋给智能指针对象。当智能指针过期时,其析构函数将使用delete来释放内存。因此,如果...

2018-07-20 08:01:36 227

原创 第十五章 - 友元、异常和其它

一,异常机制1.1,异常机制的作用 C++异常是对程序在运行过程中发生异常情况的一种响应,异常提供了将程序的控制权从程序的一部分传递到另一部分的响应。异常的抛出和处理主要使用了以下三个关键字: try、 throw 、 catch 。try:放在try块中的代码是可能发生异常的代码。 throw:这个关键字引发异常,紧随其后的值指出了异常的特征。throw语句实际上是跳转,即命...

2018-07-20 07:29:19 191

原创 第十四章 - 代码重用

一,类模板1.1,什么是类模板? 继承与包含并不总是能解决重用代码的需要。例如,Stack类与Queue类都是容器类,容器类设计用来存储其他对象或数据类型。可以定义专门用于存储double值或string对象的Stack类,除了保存的对象类型不同外,这两种Stack类的代码是相同的。然而,与其编写新的类声明,不如编写一个泛型(即独立于类型的)栈。然后将具体的类型作为参数传递给这个栈...

2018-07-20 07:11:10 370

原创 第十三章 - 类继承

一,类继承1.1,C函数库的缺点 除非厂商提供了库函数的源码,否则无法根据自己的需求对库函数进行修改。1.2,使用类继承带来的优点面向对象编程的主要目的之一是提供可重用的代码,类继承提供了比修改源码更好的方法,不需要访问源码就可以派生出类。尤其是当项目比较庞大时,重用经过测试的代码比重新编写代码要好的多。使用继承与多态机制,可以很方便的对系统的功能进行扩展。...

2018-07-14 15:05:27 284

原创 第十二章 - 类和动态内存分配

一,自定义String#include <iostream>#include <string.h>using namespace std;class String{private: char *m_data;public: String(); //默认构造函数 Strin...

2018-07-14 14:54:43 181

原创 第十一章 - 使用类

一,运算符重载1.1,什么是运算符重载? 运算符重载是一种静态的C++多态,C++允许将运算符扩展到用户定义的类型,例如:可以把两个对象相加。编译器将根据操作数的数目以及类型来决定使用哪种加法定义,重载使代码看起来更加的自然。1.2,运算符重载实例 定义一个与时间相关的类Timeclass Time{private: int hours; ...

2018-07-14 08:58:06 191

原创 第十章 - 对象和类

一,面向对象与面向过程1.1,面向对象与面向过程的区别 面向过程:面向过程是一件事“该怎么做”,是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可。 面向对象:面向对象是一件事“该谁来做”,然后那个“谁”就是对象。是以对象为核心,关注需要哪些对象,对象需要具备哪些功能,然后创建出解决问题的对象,利用对象调用相应的方法即可。采用OOP方法时,首先...

2018-07-11 11:46:07 358

原创 第九章 - 内存模型和名称空间

一,单独编译 C++鼓励程序员将组件函数放在独立的文件中,可以单独编译这些文件,然后将他们连接成可执行程序。如果只修改了一个文件,则可以只重新编译该文件,然后将它与其他文件的编译版本链接,这使得大程序的管理更便捷。1.1,常用的组织程序的策略头文件:包含结构声明和使用这些结构的函数的原型。源代码文件:包含与结构有关的函数的代码。源代码文件:包含调用与结构相关的函数的代码。...

2018-07-06 10:27:11 404

原创 第八章 - 函数探幽

一,内联函数1.1,什么是内联函数? 内联函数是C++为了提高程序的运行速度所做出的一项改进。常规函数与内联函数的主要的区别不在于函数的编写方式,而在于C++编译器如何把他们整合到代码中。要了解两者之间的区别,必须要先了解函数调用的底层实现。1.2,函数调用过程 代码编译过程的最终的产品是可执行指令–由一组机器语言指令组成。运行程序时,操作系统将这些指令载入到内存中。计算...

2018-07-03 11:28:34 267

原创 第七章 - C++的编程模块

一,函数指针 与数据项类似,函数也有地址,函数的地址是存储其二进制代码的起始位置。假设我们设计一个名为processArray()的函数,可以使用不同的方式来处理给定的数组。要实现这种目标,processArray()函数的第二个参数设置为函数指针。要使用函数指针,为此必须完成下面的工作:1.1,获取函数地址 函数的地址就是函数名。1.2,声明函数指针 声明指向...

2018-07-03 11:19:57 295

原创 第五章 - 循环和关系表达式

一,C 风格字符串1.1,定义C 风格字符串常量char *str1 = "hello world";char str2[20] = "hello world";//定义字符串数组char *str3[2] = {"hello", "world"};1.2,对字符串的操作 C语言在string.h(在C++中为cstring)中提供了一些列字符串函数。1...

2018-07-02 11:19:24 175

原创 第四章 - 复合类型

一,一维数组1.1,声明一维数组int a[5] = {1, 2, 3, 4, 5};1.2,一维数组与指针*a = a[0];*(a + 1) = a[1];1.3,一维数组作为函数参数void display(int nums[], int n){ for(int i = 0; i < n; i ++){ cout<&l...

2018-07-02 11:10:26 150

原创 第三章 - 处理数据

一,C++类型转换 C++丰富的类型允许根据需求选择不同的类型,这也使计算机的操作更加复杂。例如,将两个short值相加涉及到的硬件编码指令可能与将两个long值相加不同。由于有11种整型与3种浮点型,据此计算机要处理大量不同的情况,尤其是对不同的类型进行运算时。为处理这些潜在的混乱,C++自动执行很多类型转换,例如:1.1,初始化与赋值进行的转换int a = 20;lo...

2018-07-02 09:04:48 174

C++多线程内存顺序实现原理图

C++多线程内存顺序实现原理图

2024-04-26

pre-commit在提交前对代码进行检查

pre-commit

2024-04-07

代码风格审查工具cpplint

cpplint

2024-04-07

Git 配置BCompare工具

Git 配置BCompare工具

2024-04-07

Qt编程基础 - 第六章-窗体 - 6.4、QWidget 自定义右键菜单

Qt编程基础 - 第六章-窗体 - 6.4、QWidget 自定义右键菜单

2023-08-22

空空如也

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

TA关注的人

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