01 2019 档案
摘要:一、栈 1、栈(stack)是一种线性存储结构 栈中的数据元素遵守先进后出的原则,FILO结构 限定只能在栈顶进行插入与删除操作 栈的操作包括压栈出栈 栈中的数据元素遵守先进后出的原则,FILO结构 限定只能在栈顶进行插入与删除操作 栈的操作包括压栈出栈 栈中的数据元素遵守先进后出的原则,FILO结
阅读全文
摘要:一、线性表 1、线性表中的元素是一对一的关系,除了第一个与最后一个元素之外其他数据元素都是首尾相连的。 如果是一对多就用树来表示,如果是多对多就用网状来表示。 2、线性表的两种存储结构 顺序表:用顺序结构保存数据,数据在内存中是连续的。 链表:用链式存储结构保存数据,数据在内存中是不连续的。 二、顺
阅读全文
摘要:一、typedef函数指针 typedef void (*func)(void);//可以理解为定义了一个别名为func的函数指针,该指针指向一个入口参数和返回值类型均为void的函数 函数指针的形式: 返回值类型 (*函数名)(参数表) #include <iostream> using name
阅读全文
摘要:一、C++继承 1、继承 继承是实现代码重用的重要手段,继承是利用已存在的类的形式,在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,成为派生类。继承的语法是:在代码中和原来一样给出该类的名字,但在左括号前加一个冒号和基类的名字(对于多重继承,要给出多个基类名,用逗号隔开)。 派生类继承基
阅读全文
摘要:一、静态内存分配与动态内存分配 静态内存分配:全局或局部变量(对象),编译器在编译时都可以根据变量或对象的类型知道所需内存空间的大小。从而系统在适当的时候为他们分配内存空间 动态内存分配:有些操作对象只有在程序运行时才能确定,这样编译器在编译时就无法为他们预定存储空间,只能在程序运行时,系统根据运行
阅读全文
摘要:一、模板 模板的引入: 模板的精神:类型参数化,即类型也是一种参数。 template所代表的泛型编程是C++语言中的重要组成部分。C++是一门强类型语言,无法像动态语言(如python)那样,编写一段通用的逻辑,可以把任意类型的变量传进去。泛型编程弥补了这一点摆脱了类型的限制,提高了代码的可重用性
阅读全文
摘要:一、指向数组的指针 代码示例1: 1 int main() 2 { 3 int a[10]={0,2,4,6,8,10,12,14,16,18}; 4 int *p; 5 for(p=&a[0];p<&a[0]+10;p++) 6 printf("%d ",*p); 7 } 代码示例2: int a
阅读全文
摘要:一、this指针 1、this指针的引入 应用场景1:当我们在类中定义了一个变量同时在类成员函数中定义了一个同名变量,即变量名重复时我们又想使用类中定义的变量,此时便需要this指针 应用场景2:当成员函数的参数与类的成员函数名相同时,在赋值的时候要用this指针,类似场景1,即this.a=a;不
阅读全文
摘要:一、运算符的重载 1、运算符的重载 允许把标准运算符(如+ - * /等运算符)应用于自定义数据类型的对象,可以提高程序的可读性,运算符的重载本质上还是函数重载。运算符仅仅是语法上的方便,它是另一种函数调用的方式,只有在设计涉及的代码更容易写,尤其是更容易读的时候才有必要重载。 2、实现运算符重载的
阅读全文
摘要:一、友元函数 1、友元函数允许在类外访问该类中的任何成员,使用关键字friend说明。通过友元一个普通函数或类的成员函数可以访问封装于另一个类中的数据。从一定程度上讲,友元是对数据隐藏和封装的破坏,但是为了数据共享和提高程序的效率与可读性,小的破坏是必要的。 友元函数不属于该类的成员函数,它是定义在
阅读全文
摘要:一、函数返回值 1.返回值: 返回值时最简单的方式,它的操作主要在栈上,变量a在函数结束后会删除,为了返回a的值,系统会在内部建立一个临时变量保存a的值,以返回给调用该函数的表达式,调用结束后变量便不再存在。如果a是简单地数据类型也无所谓,不是很占用内存,如果a是大的自定义类型的数据,那么对a的复制
阅读全文
摘要:一、构造函数与析构函数 1.构造函数的作用:初始化对象的数据成员。在类对象被创建时,编译系统为对象分配内存空间,并自动调用构造函数,由构造函数完成成员的初始化操作。 构造函数特征: 函数名与类名相同 构造函数无返回类型说明,什么也不写,也不可写void 在程序运行时,当新的对象被建立,该对象所属的类
阅读全文
摘要:一、类 1.类是一种数据类型,将数据与对数据的操作(函数)放到一起。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口,对象之间通过消息进行通讯。 2.如果在类的起始点无访问说明符,系统默认为私有(private) 3.类是一种数据类型,定义时系统不为类分配存储空间,所以
阅读全文
摘要:一、函数重载--用相同的函数名定义一组功能相同或类似的函数,程序的可读性增强 1函数重载:在实际的开发中需要定义几个功能类似而参数类型不同的函数那么这样的几个函数可以使用相同的函数名,这就是函数的重载。简言之就是一个函数名可以有多种用途。 2.函数重载提高了程序的可读性,函数参数列表的不同包括:参数
阅读全文
摘要:一、C++内存管理 1.操作系统为一个C++程序的运行所分配的内存分为5个区 堆:堆是操做系统的术语,是操作系统所维护的一块特殊内存,用于程序的动态内存分配。c语言使用malloc从堆上分配内存,使用free释放已经分配的内存。 栈:主要用来存放局部变量,在函数执行时,函数内部局部变量的存储单元都可
阅读全文
摘要:系统自动类型转换:混合运算的类型转换,赋值类型转换,强制类型转换 一、混合运算的类型转换规则 1.运算过程中,当某个二元运算符两边的操作数类型不同但属于类型相容时,系统先将精度低的操作数变换到与另一个操作数精度相同,然后再进行运算。 混合运算类型转换规则: 字符可以作为整数参与数值运算,整数值为其A
阅读全文
摘要::一、C++左值右值概念 左值:c++将变量名代表的单元称为左值,而将变量的值称为右值,左值必须是内存中可以访问且可以合法修改的对象,因此只能是变量名,而不能是常量或表达式。即左值可以寻址。 右值:将变量的值称为右值,由运算操作(加减乘除,函数调用返回值等)所产生的中间结果(没有名字的结果)称为右值
阅读全文
摘要:一 .C++数据类型 1.C++中的数据类型 2.C++中基本数据类型所占用的字节数 二.常见运算符 1.运算符:在C++中对常量或变量进行运算或处理的符号称为运算符,参与运算的对象称为操作数 2.常见运算符: 3.需要特别注意的运算符 域运算符:: new,new[],动态元素内存分配与动态数组内
阅读全文

浙公网安备 33010602011771号