- 博客(20)
- 收藏
- 关注
原创 数据类型和抽象数据类型
数据类型和抽象数据类型使用高级程序设计语言编写程序时,必须对程序中出现的每个变量或表达式,明确说明它们所属的数据类型例如,C语言中:-提供int,char,float,double等基本数据类型-数组,结构,共用体,枚举 等数据类型-还有指针,空(void)类型-用户也可用 typedef 自己定义数据类型一些最基本数据结构可以用数据类型来实现,如数组,字符串等而另一些常用的数据结构,如栈、队列,树,图等,不能直接用数据类型来表示高级语言中数据类型中明显地或隐含地规定了在程序中执行期间变
2021-03-21 23:48:07 320
原创 逻辑结构,存储结构
数据结构的基本概念和术语数据数据元素数据项数据对象数据是能输入计算机且能被计算机处理的各种符号的集合,分为数值数据,非数值数据。1.信息的载体2.是对客观事物符号化的表示3.能够被计算机识别,存储和加工4.数值数据:整数,实数等5.非数值数据:文字,图像,图形,声音数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,也称为元素,记录,结点或顶点。数据项构成数据元素的不可分割的最小单位。所以:数据 > 数据元素 > 数据项
2021-03-21 23:07:53 328
原创 数据结构绪论
数据结构与算法基础程序=数据结构+算法1.基本结构通常,用计算机解决一个问题的步骤:具体问题抽象为数学模型设计算法编程,调试,运行数据结构是一门研究在非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科...
2021-03-21 20:58:52 146
原创 纯虚函数和抽象类
新的概念:纯虚函数和抽象类前面定义的类都是“具体类”,能够使用这些类定义对象。C++还提供了一种“抽象类”,抽象类不能实例化对象,它的唯一用途是为其他类提供合适的基类,其他类可从它这里继承和(或)实现接口。一个类是抽象类还是具体类,主要看其是否包含纯虚函数,包含纯虚函数的类就是抽象类。纯虚函数就是在声明时初始化为0、没有函数体的虚函数,其声明形式为:virtual <函数类型> 纯虚函数名(<形参类型表>)=0;例如:我们可以定义Base类:class Base{
2020-08-20 22:57:17 153
原创 虚析构函数
新的拓展:如果使用基类指针释放动态创建的派生类对象,则需要将析构函数声明为虚函数(否则,会导致在派生类中新添加的成员没有被释放,导致内存泄漏。)//Person.h#include <iostream>using namespace std;class Person{ public: Person(char* name,bool sex) { m_name=new char[strlen(name)+1); strcpy(m_nam
2020-08-20 22:17:23 84
原创 面向对象程序实例(对象成员)
示例说明:设计一个Point类,在定义一个Circle类,Circle类对象的圆心属性是Point类对象。要求:根据需要,合理地设计描述Point类和Circle类的属性和方法合理地设计类成员的访问控制方式考虑如何初始化Point类对象和Circle类对象考虑如何输出Circle类对象的属性信息用主函数测试类要求使用多文件实现程序类名Point属性X坐标private: int m_nX;属性Y坐标private:int m_nY;方法构造函数pub
2020-08-18 18:44:50 944 2
原创 面向对象程序实例(友元运算符重载)
示例说明:设计一个Student类,每名学生包括学号、姓名和总评成绩3个属性,学生的学号、姓名和总评成绩可以通过初始化得到,学生的总评成绩可以通过赋值运算符“=”更改。能够通过普通函数display函数输出学生的学号、姓名和总评成绩等信息。要求:合理地设计属性和方法合理地设计类成员的访问控制方式和友元考虑如何初始化学生对象的“学号”和“姓名”属性考虑如何通过“对象名=总评成绩”实现给对象“总评成绩”属性赋值用主函数测试类要求用多文件结构实现程序类名Student属性学号
2020-08-18 17:44:59 963
原创 面向对象程序实例——静态成员和多文件结构
示例说明:设计一个立方体类,该类具有边长,能够设置立方体的边长,求立方体的体积。该类还能够记录和显示当前立方体的数量。合理地设计属性和方法考虑如何通过构造函数和析构函数维护对象数量的情况合理地设计类成员的访问控制方式和静态特性用主函数测试类要求用多文件结构实现程序//Cube.hclass Cube{ private: double m_x; //边长 static int numOfObject; //数量 public: Cube(); /无参构造函数
2020-08-18 17:00:39 2164 1
原创 面向对象方法程序实例
示例说明:设计一个点类Point,该类具有两个实数坐标,能够初始化对象的属性,能够设置对象的属性,能够显示对象的属性,在对象生命周期结束时,能够显示“再见!”信息。要求:合理的设计属性和方法考虑如何实现在点的两个坐标已知和两个坐标未知情况下如何初始化对象合理地设计类成员的访问控制方式用主函数测试类类名Point属性x坐标private:double m_x;属性y坐标private:double m_y;方法创建对象public:Point();方法
2020-08-18 16:31:55 1323
原创 类友元形式的运算符重载
新的概念:类友元形式的运算符重载由于友元函数可以访问类的私有成员和保护成员,为了方便,类非成员函数形式的运算符重载函数一般采用友元函数。运算符重载为类的友元函数,需要在类内进行声明。声明类的友元运算符重载的形式为:friend <函数类型> operator <运算符>(<参数表>)当运算符重载为类的友元函数时,由于没有隐含的this指针,因此操作数的个数没有变化,所有的操作数都必须通过函数的形参进行传递,函数的参数与操作数自左向右一一对应。调用友元函数
2020-08-18 14:57:53 371
原创 类成员函数形式的运算符重载
新的概念:类成员函数形式的运算符重载运算符重载的方法是定义一个重载运算符的函数。运算符函数重载一般有两种形式:重载为类的成员函数和重载为类的非成员函数。成员函数形式的运算符重载函数定义的一般形式为:<返回类型说明符> operator <运算符符号>(<参数表>){ <函数体>}当运算符重载为成员函数时,函数的参数个数比原来的操作数要少一个(后增、后减单目运算符除外)。因为成员函数用this指针隐式地访问了类的一个对象,它就是运算符最左边的
2020-08-18 14:45:14 1270
原创 运算符重载实例(整理)
新的程序:赋值运算符和下标运算符程序实例:示例说明:整形动态数组类的实现,在下面的整形数组类IntArray中,定义了赋值运算符函数和下标运算符函数。//IntArray.hclass IntArray{ public: IntArray(int arraySize); IntArray(); ~IntArray(); IntArray& operator=(const IntArray &); //重载赋值运算符 /*成员函
2020-08-05 20:38:20 258
原创 类的对象成员声明、初始化和访问(整理)
新的概念:对象成员声明、初始化和访问声明:对象成员的声明与其他成员相同,语法格式为:<类名><对象成员名>就如上篇中 “Point m_center” 就是在Circle类中声明的一个成员初始化:对象成员的初始化是通过调用构造函数来完成的,即一个对象成员的初始化时“大对象”被创建时一同被创建的。具体方法:定义"大对象"所在类的构造函数时,在成员初始化列表中将参数传递到"小对象"成员的构造函数中。成员初始化列表的格式为<对象成员1>(<初值表>
2020-08-03 14:34:40 1228
原创 类的对象成员(整理)
新的概念:类的对象成员C++程序中可能会涉及到许多类和对象,这些类和对象间如何发生联系?C++为类和对象之间的联系提供了如下方式:一个类对象可能是另一个类的成员(对象成员)一个类的成员函数是另一个类的友元成员一个类定义在另一个类的说明中,即类嵌套一个类作为另一个类的派生类什么是对象成员?答:自定义类的数据成员是另一个类的对象(两个角色)例如:类B的对象是类A的一个成员,则该成员就称为类A的对象成员这意味着一个类A的“大对象”包含着一个B类的“小对象”也就是说,类B对象属于类A对
2020-08-03 12:39:53 2937
原创 类的友元(整理)
新的概念:类的友元回顾:类成员访问控制方式使得普通函数无法直接访问类的私有成员或保护成员,一个类中的成员函数也无法直接访问另一个类的私有成员或保护成员。问题:在程序中,如果普通函数或另一个类中的函数需要经常通过类提供的公有接口来访问类的私有或保护成员,这种方式会带来很多不便,那么如何提高程序运行的效率呢?答:可以将它们声明为类的友元——朋友,它们就可以直接访问类的任何成员了。(友元提供了一个一般函数与类成员之间,不同类的成员之间进行数据共享的机制)友元的而三种形式:友元函数(将普通函数声明为类的
2020-08-03 11:05:08 553
原创 类声明和类实现的分离(整理)
新的概念:类声明和类实现的分离什么是声明和实现分离呢?类的声明——描述类的结构(挂名)包括数据成员、成员函数和友元类的实现——定义了成员函数的具体功能(实际功能)为什么要这样做呢?当类很大时,分离声明和实现,可以渐少冗长、繁杂分离生命和实现,可以清楚地查看到类中的成员函数和数据成员分离后,各自的文件名是什么?类声明文件的扩展名—— .h类实现文件的扩展名—— .cpp特别说明:在类体中给出成员函数的定义,则该成员函数默认是内联函数在类外给出成员函数定义,则需加上inli
2020-08-02 18:10:16 1017
原创 拷贝构造函数(整理)
新的概念:拷贝构造函数导引:含有 “构造函数”,因而就具备了“构造函数”的所有特征。此外,还新增加了新的特征。(当然,不变的是其作用依然是 “初始化”。)作用:用一个已经存在的对象初始化一个正在创建的新对象。特征:拷贝构造函数名与类名相同,形参只有一个——对象的引用没有任何函数返回类型因为只有一个形参且无返回类型,因而不能重载拷贝构造函数形式:<类名>(<类名> &对象名)没用明显定义时,系统自动给出默认拷贝构造函数——“浅拷贝”某些情况下,用户必须明确定
2020-08-02 11:07:27 290
原创 析构函数(整理)
新的概念:析构函数回忆:构造函数的作用:初始化变量(为变量分配空间)新知:析构函数的作用:销毁变量(释放变量占用的空间)析构函数的特征命名方式:~<类名>无返回类型(void)也没有(类似构造函数)没有参数,因此不能被重载没有明显定义时,系统调用默认析构函数何时调用析构函数?当对象的生命周期结束时示例要求:定义 IntArray 类,要求根据需要确定数组的规模默认数组的规模为10个元素可以显示数组的规模信息#include <iostream>us
2020-08-01 09:11:58 162
原创 类成员的访问权限(整理)
新的概念类成员的访问控制(其实就是设置访问权限)及其实例C++中有三个访问限定符:public 公有private 私有protected 保护作用:访问控制的存在,实现了类的封装性公有成员:1.public 区域内的成员是公有成员2.访问权限:程序的任何地方都可以被访问3.一般将公有成员限制在成员函数上,使其作为类与外界的接口(程序通过公有的成员函数来操作该类对象)私有成员:1.private 区域内的成员是私有成员2.访问权限:只能被该类的成员函数或该类的友元访问3.一
2020-07-31 14:52:15 3077
原创 C++笔记整理(基础篇整理)
C++学习笔记(基础篇)新的概念:对象、类、实例、消息 (其实都是字面意思)(1)对象:具体的事物 / 泛指的事物选课系统 :(学生)(老师)(课程) 三者都是 “对象”对象(角色)——用来提供服务、执行任务有自己的特征——数据成员对象都有什么有可以完成的行为——成员函数对象示例:圆 (对象)圆的特征:圆心(x,y) 半径 r圆的能力:重新设置圆心重新设置半径计算周长、面积(2)消息:消息传给对象,对象接收到后,启动行为(3)类:分类的 ‘类’ 人们只把具有相同性质
2020-07-31 10:47:13 1846
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人