![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 86
zhuboke3344
这个作者很懒,什么都没留下…
展开
-
模板实现顺序表和链表并栈和队列
Vector.h#include<iostream>using namespace std;#include<assert.h>//类名 Vector//类型 Vector<T>template<class T>class Vector{public: Vector()//构造函数(构造函数名与类名相同) :_start(NU...原创 2018-05-22 23:20:51 · 149 阅读 · 0 评论 -
顺序表和链表
一、复习STLSTL(标准数据库):不仅是一个可复用的组件库,而且是一个包罗算法和数据结构的软件框架。(1)容器:各种数据结构(string、vector、list、map、set、multimap、multilset)(2)迭代器:扮演容器和算法的胶合剂(iterator)(3)空间配置器:负责内存空间的分配与管理(allocator)解决内存碎片(4)配接器(适配器):一种修饰容器或者仿函数或...原创 2018-05-22 23:12:07 · 164 阅读 · 0 评论 -
模板
为什么要有模板?·使用函数重载,针对每个具有相同行为的不同类型重新实现int Add(int &x, int &y){ return x + y;}float Add(float &x, float &y){ return x + y;}缺点:1、只要有新类型出现,就要重新添加对应函数2、除类型外,所有函数的函数体都相同,代码的复用率不高3、如果函数只...原创 2018-05-18 23:40:16 · 166 阅读 · 0 评论 -
多态
一、虚函数虚函数——类的成员函数前加virtual关键字,则这个成员函数为虚函数虚函数重写——当在子类定义了一个与父类完全相同的虚函数时,则称子类的这个函数重写(覆盖)了父类的虚函数总结:1、派生类重写基类的虚函数实现多态,要求函数名、参数列表、返回值完全相同(协变除外)2、基类中定义虚函数,在派生类中该函数始终保持虚函数的特性3、只有类的成员函数才能定义为虚函数,静态成员函数和全局函数都不能定义...原创 2018-05-10 17:36:46 · 113 阅读 · 0 评论 -
继承
继承是面向对象复用的重要手段。通过继承定义一个类,继承是类型之间的关系建模,共享公有的东西,实现各自本质不同的东西。继承定义的格式继承关系&访问限定符实现一个简单的继承关系继承是一种复用手段,在继承关系里基类的成员类的成员派生类的成员,由此达到复用的目的。三种继承关系下基类成员的在派生类的访问关系变化继承方式基类的public成员基类的protected成员基类的private成员继承引起...原创 2018-05-08 21:58:43 · 168 阅读 · 0 评论 -
深浅拷贝
【浅拷贝】 又称位拷贝,编译器只是直接将指针的值拷贝过来,结果多个对象共用同一块内存,当一个对象将这块对象释放掉之后,其他对象不知道该内存已经还给了系统,以为还有效,所以在这段内存进行操作的时候,发生了错误。#include<iostream>using namespace std;#include<cstring>class String{public...原创 2018-04-16 17:03:00 · 93 阅读 · 0 评论 -
动态内存管理
一、C语言动态内存管理C语言使用malloc/calloc/realloc/free进行动态内存管理#include<stdio.h>int main(){ //malloc一次最多申请1兆的内存空间 //当返回值为NULL时,不再继续分配空间 int* p1 = (int*)malloc(sizeof(int)* 4); free(p1); //calloc将申请的空...原创 2018-04-03 18:52:38 · 107 阅读 · 0 评论 -
友元及静态成员
一、友元函数 在C++中友元函数允许在类外访问该类内的任何成员,就像成员函数一样。友元的关键字为friend。1、友元函数不是类的成员函数2、友元函数可以通过对象访问所有成员,私有和保护都可以class Date{ friend void Show(const Date& d);public: Date(int year, int month, int day) :_year...原创 2018-03-27 19:41:54 · 295 阅读 · 1 评论 -
日期类
#include<iostream>using namespace std;#include<assert.h>class Date{public: Date(int year = 2018, int month = 3, int day = 19)//构造函数 :_year(year) , _month(month) , _day(day) {...原创 2018-04-02 18:25:25 · 133 阅读 · 0 评论 -
面试题——拷贝构造赋值函数的调用
1、Date对象做参数传值/传引用//1、Date对象做参数传值/传引用void f1(Date d)//传值{}void f2(Date& d)//传引用{}//调用Date d1;f1(d1);//传值f2(d1);//传引用2、Date对象做返回值传值/传引用Date ff1()//传值{ Date d; return d;}Date& ff2()/...原创 2018-03-30 09:27:35 · 202 阅读 · 0 评论 -
类的默认成员函数
一、构造函数1、概念:是一个特殊成员函数,名字与类名相同,创建类类型对象时,由编译器自动调用,在对象的生命周期内只且只调用一次,以保证数据成员都有一个合适的初始值。2、特征(1)函数名与类名相同(2)没有返回值(3)对象构造(对象实例化)时系统自动调用对应的构造函数(4)构造函数可以重载(5)构造函数可以在类中定义,也可以在类外定义(6)如果类定义中没有给出构造函数,则C++编译器会自动产生一个缺...原创 2018-03-19 23:02:07 · 282 阅读 · 0 评论 -
引用
一、概念引用:不是一个新定义的变量,而是一个已经定义好的变量的别名格式:类型 &引用变量名=已定义过的变量名特点: (1)一个变量可以有多个别名 (2)引用必须初始化(引用必须是其他变量的别名) (3)引用只能在初始化的时候引用一次,不能改变为其他变量的引用二、const引用(常引用)三、引用做参数1、【值传递】如果形参为非引用的传值方式,则生成局部临时变量接收实参的值v...原创 2018-03-13 23:09:01 · 317 阅读 · 0 评论 -
this指针
class Date{public: Date(int year = 2018, int month = 3, int day = 15) { _year = year; _month = month; _day = day; } void Display() { printf("%d-%d-%d\n", _year, _month, _day); }priva...原创 2018-03-16 10:51:52 · 128 阅读 · 0 评论 -
类
一、面向对象的程序设计1、概念:是一种程序设计范型,同时也是一种程序开发的开发方法。对象指的是类的实例,将对象作为程序的基本单元,将程序和数据封装在其中,以提高软件的重用性、灵活性和扩展性。C++不是纯面型对象语言,而是基于面向对象的语言面向对象的特性:封装、继承、多态2、封装:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法进行有机结合。二、类(class、stru...原创 2018-03-16 10:34:40 · 221 阅读 · 0 评论 -
用模板类实现顺序表
#pragma once#include#include#includeusing namespace std;templateclass Vector{private: T* _start; T* _finish; T* _endOfStorage;private: //如果容量小于顺序表的大小,则增容 void _CheckCapacity() { size原创 2017-11-05 23:07:51 · 622 阅读 · 0 评论 -
拷贝
C++类在定义时,系统会提供一个默认的拷贝构造函数,这个函数属于迁拷贝,当使用该类定义对象时赋值,如:类 A = B,就要用到它。一般来说系统提供的默认拷贝函数是不能满足需求的,我们一般要自己编写拷贝构造函数。而拷贝构造函数的定义方法如下:class 类名{ 类名(const 类名 &对象名); // 函数定义}运行结果:原创 2017-11-04 11:08:49 · 219 阅读 · 0 评论 -
虚表剖析
虚基表是通过一块连续的内存来存储虚函数的地址。这张表解决了继承、虚函数(重写)的问题。在有虚函数的对象实例中都存在一张虚表,虚函数表就像是一张地图,指明了实际应该调用的虚函数一、探索单继承对象模型...原创 2018-05-16 21:43:31 · 189 阅读 · 0 评论