自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 将博客搬至 CSDN

将博客搬至 CSDN

2019-09-29 20:29:00 110

原创 虚函数

文章目录虚函数虚函数的定义虚函数使用的注意事项虚表什么是虚表图解说明虚表的四种情况一般继承(无虚函数覆盖)一般继承(有虚函数覆盖)多重继承(无虚函数覆盖)多重继承(由虚函数覆盖)虚函数虚函数的定义虚函数是一个类的成员函数,它的定义语法如下:特别注意:当一个类的一个成员函数被定义为虚函数时,则由该类派生出来的所有派生类中,该函数始终保持虚函数的特征当在派生类中重新定义虚函数时,不必加关...

2019-09-26 10:56:19 12979 1

原创 纯虚函数

文章目录什么是纯虚函数使用纯虚函数的注意事项什么是纯虚函数纯虚函数(pure virtual function)是指被标明为不具体实现的虚拟成员函数。通常情况下,纯虚函数常用在这种情况:定义一个基类时,基类中虚函数的具体实现由于必须依赖派生类的具体情况从而无法在基类中确切定义,此时可以把这个虚函数定义为纯虚函数使用纯虚函数的注意事项含有纯虚函数的基类是不能用来定义对象的。纯虚函数没有实...

2019-09-25 22:28:43 4141

原创 this 指针的简单理解

文章目录什么是 this 指针this 指针的本质什么是 this 指针要想理解什么是 this 指针,首先必须理解在 C++ 中是如何为类的对象分配内存空间的。由上例可以看出,当用类 Student 定义一个对象 stu 时,内存开辟 36 个字节的空间用来存储这个对象,而内存开辟的空间刚好分配给了这个对象的四个成员变量(Name、Amount、Price、Total),那么问题来了,成...

2019-09-25 22:11:40 237

原创 C语言版本:双链表的实现

Dlist.h 1 #ifndef __DLIST_H__ 2 #define __DLIST_H__ 3 4 #include<cstdio> 5 #include<malloc.h> 6 #include<assert.h> 7 typedef int ElemType; 8 typedef struct No...

2017-09-29 16:11:00 76

原创 C语言版本:循环单链表的实现

SClist.h 1 #ifndef __SCLIST_H__ 2 #define __SCLIST_H__ 3 4 #include<cstdio> 5 #include<malloc.h> 6 #include<assert.h> 7 typedef int ElemType; 8 typedef struct...

2017-09-28 14:01:00 92

原创 C语言版本:单链表的实现(优化版本)

未优化版本:http://www.cnblogs.com/duwenxing/p/7569376.htmlslist.h 1 #ifndef __SLIST_H__ 2 #define __SLIST_H__ 3 4 #include<cstdio> 5 #include<malloc.h> 6 #include<asser...

2017-09-21 17:12:00 88

原创 C语言版本:单链表的实现

slist.h 1 #ifndef __SLIST_H__ 2 #define __SLIST_H__ 3 4 #include<cstdio> 5 #include<malloc.h> 6 #include<assert.h> 7 typedef int ElemType; 8 typedef struct No...

2017-09-21 16:44:00 51

原创 C语言版本:顺序表的实现

seqlist.h 1 #ifndef __SEQLIST_H__ 2 #define __SEQLIST_H__ 3 4 #include<cstdio> 5 #include<malloc.h> 6 #include<assert.h> 7 #define SEQLIST_INIT_SIZE 8 8 #defi...

2017-09-20 17:14:00 71

原创 C++:多态浅析

1.多态在C++中由两种多态性:• 编译时的多态性:通过函数的重载和运算符的重载来实现的• 运行时的多态性:通过类继承关系和虚函数来实现的特别注意:a.运行时的多态性是指程序执行前,无法根据函数名和函数的参数来确定调用哪一个函数,必须在程序执行的过程中,根据执行的具体情况来动态地确定。其目的是追求程序的通用性,建立一种通用的程序b.运行时的多态,简而言之就是用父类...

2017-09-11 11:10:00 94

原创 C++:同名隐藏和赋值兼容规则

一、同名隐藏同名隐藏,即在C++的继承中,只要子类的函数名和父类的函数名相同,子类中的函数将会隐藏所有父类中和子类的成员函数同名的函数特别注意:和函数之间的重载不同,这里只要求函数的名字相同,而对函数的参数列表是否相同不做要求。话句话说父类中和子类的成员函数名相同但参数列表不同的成员函数也会被隐藏示例: 1 #include<iostream> 2...

2017-09-09 03:34:00 377

原创 C++:钻石继承与虚继承

QUESTION:什么是钻石继承?ANSWER:假设我们已经有了两个类Father1和Father2,他们都是类GrandFather的子类。现在又有一个新类Son,这个新类通过多继承机制对类Father1和Father2都进行了继承,此时类GrandFather、Father1、Father2和Son的继承关系是一个菱形,仿佛一个钻石,因此这种继承关系在C++中通常被称为钻石继承(...

2017-09-08 01:49:00 164

原创 C++:派生类的构造函数和析构函数的调用顺序

一、派生类在C++编程中,我们在编写一个基类的派生类时,大致可以分为四步:• 吸收基类的成员:不论是数据成员还是函数成员,派生类吸收除基类的构造函数和析构函数之外的全部成员。• 改造基类函数:在派生类中声明一个或多个与其(某个)基类中的成员函数同名的成员函数,并将它(们)根据新的需求进行重写• 发展新的成员:在派生类中添加新的成员变量和成员函数,其中新添加的成员要求必须和...

2017-09-06 11:50:00 335

原创 C++:继承访问属性(public/protected/private)

• 公有继承(public)公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: 1 #include<iostream> 2 using namespace std; 3 class Father{ 4 public: 5 Father()=default; 6 void Father_show1(){ 7 ...

2017-09-05 02:43:00 81

原创 C++:new&delete

一、new的浅析在C++中,new主要由三种形式:new operator、operator new和placement new• new operatornew operator即一些C++书籍中(如《C++ Primer》)所说的new表达式(new expression) ,也是我们在C++中用来进行动态内存空间开辟的主要工具。语法:语法1:类型* 指...

2017-09-04 16:51:00 81

原创 C++:模板——函数模板1

一、为什么使用函数模板假设我们在程序中需要比较两个变量的大小,但变量的类型可能是int、float或者double,此时为了满足程序的要求我们可能会在程序中编写多个函数,如: 1 //比较两个int型变量的大小 2 int compare(const int &a,const int &b){ 3 return a>b?a:b; 4...

2017-09-03 03:04:00 85

原创 C/C++:static用法总结

前言:static是C/C++中一个很重要的关键字,最近阅读了很多博客和资料,遂在此对自己的学习笔记进行简单的总结并发表在这里一、C语言中的static• 静态全局变量:在全局变量之前加上关键字static,该全局变量就被定义成了一个静态全局变量特别注意:1.静态全局变量在内存中的存储位置:静态区(全局区)。 [注]:静态区(全局区)在整个程序运行期间都存在...

2017-09-02 04:11:00 117

原创 C++:内存分区

前言:最近正在学习有关static的知识,发觉对C++的内存分区不是很了解,上网查了很多资料,遂将这几天的学习笔记进行了简单整理,发表在这里• 栈区(stack):主要用来存放函数的参数以及局部变量。栈区由系统进行内存管理,在函数完成执行时,系统会自行释放栈区的内存,而不需要用户参与管理。整个程序的栈区的大小可以在编译器中由用户自行设定,默认的栈区大小为3M...

2017-09-01 03:35:00 59

原创 C++:友元

前言:友元对于我来说一直是一个难点,最近看了一些有关友元的课程与博客,故在此将自己的学习收获做一个简单的总结一、什么是友元在C++的自定义类中,一个常规的成员函数声明往往意味着:  • 该成员函数能够访问其所在类的私有部分  • 该成员函数位于其所在类的作用域之中  • 该成员函数必须由一个对象去激活从而被调用(通过this指针来实现)如果将一个函数声明为...

2017-08-31 00:59:00 59

原创 C++:构造函数3——浅拷贝和深拷贝

一、默认拷贝构造函数拷贝构造函数是一种特殊的构造函数(详情见:http://www.cnblogs.com/duwenxing/p/7429777.html),如果用户在定义类时没有显式地编写拷贝构造函数,那么C++编译器会在类中生成一个默认的拷贝构造函数。默认拷贝函数完成对象之间的位拷贝(即浅拷贝),换句话说就是用“旧对象”的成员对象对“新对象”的成员对象进行对应的一一赋值,如下:...

2017-08-30 04:11:00 97

原创 C++:类中两个易被忽略的默认函数

C++的自定义类中有六个默认的函数,即如果用户没有显式定义这些函数时,C++编译器会类中生成这些函数的默认形式。除了大家所熟知的构造函数、拷贝构造函数、赋值函数和析构函数外,C++为自定义类 还提供了两个容易被人忽视的默认函数——取地址函数和对常对象的取地址函数。一、取地址函数在C++中可以通过取地址运算符&求得变量的地址,如:1 int a=10;2 cou...

2017-08-29 23:59:00 49

原创 C++:析构函数

一、什么是析构函数析构函数是类中一种特殊的成员函数,但其功能和构造函数是相反的,当对象结束其生命周期时,系统会自动调用该对象的析构函数进行清理工作(如释放内存中分配给该对象的空间,关闭打开的文件等)。另外析构函数没有返回值,不需要参数,也不能被重载且一个类中有且只能有一个析构函数。但和构造函数相似,析构函数的函数名和类名相同,只不过需要在函数名向加上一个~。语法:~ 类名()...

2017-08-29 22:16:00 114

原创 C++:类中的赋值函数

先来看一个例子: 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class Student{ 5 public: 6 Student(){ 7 cout<<"调用默认构造函数"<<endl; 8 ...

2017-08-29 02:06:00 421

原创 C++:构造函数2——拷贝构造函数

前言:拷贝构造函数是C++中的重点之一,在这里对其知识进行一个简单的总结。一、什么是拷贝构造函数在C++中,对于内置类型的变量来说,在其创建的过程中用同类型的另一个变量来初始化它是完全可以的,如:1 int value=100;2 int new_value=value;//在变量new_value创建的同时用同类型的变量value来初始化它那么对于自定义的...

2017-08-26 02:22:00 72

原创 C++:引用的简单理解

前言:引用是C++一个很重要的特性,最近看了很多有关引用的资料和博客,故在此对引用的相关知识进行总结一、什么是引用引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价语法:类型 &引用名=目标变量名;特别注意:1.&不是求地址运算符,而是起标志作用2.引用的类型必须和其所绑定的变量的类型相同1 ...

2017-08-25 00:09:00 173 1

原创 C++:构造函数1——普通构造函数

前言:构造函数是C+中很重要的一个概念,这里对其知识进行一个简单的总结一、构造函数的定义1.类中的构造函数名与类名必须相同2.构造函数没有函数的返回类值型说明符[特别注意]:a.构造函数的返回值类型不是void,而是没有b.构造函数虽然没有返回值类型说明符,但构造函数是有返回值的,构造函数的返回值是其所创建的对象1 class Student{2 pu...

2017-08-23 21:00:00 197

原创 C++:默认初始化

一、什么是默认初始化默认初始化,顾名思义,即为在定义变量时如果没有为其指定初始化值,则该变量会被C++编译器赋予默认的值。而变量被赋予的默认值到底是什么,则取决于变量的数据类型和变量的定义位置。二、默认初始化的规则规则1:内置类型的变量如果初始化,则它的默认初始化值取决于定义它的位置:• 定义在任何函数之外的未初始化的内置类型变量(也就是全局变量)会被默认初始化为0...

2017-08-23 00:32:00 531 1

原创 C++:this指针的简单理解

一、什么是this指针要想理解什么是this指针,首先必须理解在C++中是如何为类的对象分配内存空间的。 1 #include<iostream> 2 using namespace std; 3 class Student{ 4 public: 5 void CountTotal(); 6 void GetName(char ...

2017-08-22 11:12:00 145 1

原创 C++:const_cast的简单理解

前言:const_cast是我比较头疼的一个知识点,最近查阅了很多资料,也翻看了很多他人的博客,故在此将自己目前学习到的有关const_cast知识做一个简单的总结一、什么是const_cast简单来说,const_cast是C++提供的四种显示类型转换的方式之一,其主要作用是移除变量的const限定符从而改变表达式的常量属性。语法:const_cast<type_...

2017-08-21 18:32:00 523

原创 C++:const用法的简单总结

一、对变量的修饰在c++中,如果我们希望定义一个值不会被改变的变量,那么可以用关键字const对它进行修饰,被修饰后的变量其作用相当于一个常量1 //这两种方式等价2 语法1:const 类型名 变量名3 语法2:类型名 const 变量名 特别注意:1.const对象一旦创建,其值就不能再被改变。因此const对象必须初始化1 const int...

2017-08-20 02:07:00 107

原创 Python:print()函数的几个常用参数

1.参数sep:设置输出字符产之间的字符串。默认是空格1 name='Tomwenxing'2 age='23'3 job='student'4 print(name,age,job)5 print(name,age,job,sep='-')2.参数end:设置输出文本末尾的字符串。默认是'\n' 1 name='Tomwenxing' 2...

2017-08-19 21:10:00 782

原创 Python:迭代器的简单理解

一、什么是迭代器迭代,顾名思义就是重复做一些事很多次(就现在循环中做的那样)。迭代器是实现了__next__()方法的对象(这个方法在调用时不需要任何参数),它是访问可迭代序列的一种方式,通常其从序列的第一个元素开始访问,直到所有的元素都被访问才结束。 [注意]:迭代器只能前进不能后退[迭代器的优点]:使用迭代器不要求事先准备好整个迭代过程中的所有元素。迭代器仅仅在迭代到某个...

2017-08-19 20:08:00 58

原创 Python:生成器的简单理解

一、什么是生成器在Python中,由于受到内存的限制,列表容量肯定是有限的。例如我们创建一个包含一亿个元素的列表,Python首先会在内存中开辟足够的空间来存储这个包含一亿个元素的列表,然后才允许用户去使用这个列表,这就可能会导致以下问题:  1、内存中没有足够的内存空间开存储这个列表,从而导致列表无法创建  2、即使列表成功创建,然而仍会消耗很长的时间,导致程序效率低下...

2017-08-19 16:16:00 43

原创 Python:装饰器的简单理解

1、装饰器的本质是函数,主要用来装饰其他函数,也就是为其他函数添加附加功能2、装饰器的原则:(1) 装饰器不能修改被装饰的函数的源代码(2) 装饰器不能修改被装饰的函数的调用方式3、实现装饰器的知识储备(1) Python中函数即‘变量’a、变量在Python中的存储1 x='Tomwenxing'2 y=x[说明]:当Python解释器遇...

2017-08-18 00:43:00 73

原创 Python:文件操作总结1——文件基本操作

一、文件的操作流程1、打开文件,得到文件句柄并赋值给一个变量2、通过句柄对文件进行操作3、关闭文件二、文件的打开与关闭A、文件的打开——open函数语法:open(file[,mode[,buffering[,encoding[,errors[,newline[,closefd=True]]]]]])[参数说明]:file——文件的位置+文件的名...

2017-08-15 19:23:00 81

原创 Python:集合操作总结

集合是一组无序排列的不重复元素集[注]:集合的最大作用是对一个序列进行去重操作一、集合的分类  在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset)。对于可变集合(set)是允许添加和删除元素的;而对于不可变集合(frozenset)则不允许对集合进行添加和删除操作。二、集合的创建  与列表([])、元组(())和字典({})不同,集合...

2017-08-13 22:39:00 148

原创 Python:字典操作总结

字典是Python中唯一的映射类型[注]:字典中数据是无序排放的一、字典的创建方法方法1:用大括号包裹键值对从而创建字典1 addict={}#创建一个空字典2 addict={key1:value1,key2:value2,...}方法2:利用内建函数dict()来创建字典(1)利用dict()创建空字典d=dict() #创建空字典...

2017-08-13 16:19:00 179

原创 Python:内建函数zip

1.语法zip([iterable,...])[说明]:iterable——一个或多个迭代器2.功能zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个的元组,然后返回由这些元组组成的列表1 a=[1,2,3,4]2 b=[2,3,4,5]3 c=[3,4,5,6]4 d=zip(a,b,c)5 for item in ...

2017-08-13 16:16:00 45

原创 Python:字符串操作总结

所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值最大值)对字符串同样适用,且字符串是不可变的。一、字符串格式化转换说明符 [注]: 这些项的顺序至关重要(1)%字符:标记转换说明符的开始(2)转换标志(可选)转换标志作用-左对齐+在转换值之前加上正负号““(空白字符串)正数之前保留空格...

2017-08-12 18:04:00 116

原创 Pyhont:内建函数enumerate

1、enumerate的中文意思2、enumerate参数为可遍历的变量,如字符串、列表等,其返回值为enumerate类。3、enumerate多用在for循环中得到计数。 [注]:若在for循环中同时需要index和value值,则此时可以考虑enumerate4、enumerate的使用效果1 list=['Tom','Jack','Dick','El...

2017-08-12 02:20:00 63

空空如也

空空如也

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

TA关注的人

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