学习c++
c++ 专业课 不多bb
三千越甲可吞吴、
知不可乎骤得 托遗响于悲风
展开
-
面向对象程序设计 第九章 模板和异常处理 异常处理
1、异常处理try、throw、catch关键字,联合使用try{ if(语句1) throw 数值1/"返回语句1"; if(语句2) throw 数值2/"返回语句2";}catch(int n)//用数值举例{ if(n==数值1) ... if(n==数值2) ...}编写程序,说明错误信息的处理过程#include<iostream>...原创 2019-11-01 21:17:49 · 298 阅读 · 0 评论 -
面向对象程序设计 第九章 模板和异常处理 模板
1、模板模板的定义:template<class T>T 函数名(参数){ 函数体;}利用模板求两个数的最小值#include<iostream>using namespace std;template<class T>T findmin(T a,T b){ T min; min=(a<b)?a:b; re...原创 2019-11-01 20:30:25 · 231 阅读 · 0 评论 -
面向对象程序设计 第八章 类的设计
计数器、字符串、链表、堆栈、数组、队列类的设计。原创 2019-11-01 11:16:09 · 156 阅读 · 0 评论 -
用于实现多态的例子
/*用于实现多态性的例子*/#include<iostream>using namespace std;class animal{protected: int height;public: animal(int a):height(a) { } virtual void disp() { }}; class stu1:public animal{pub...原创 2019-11-01 11:11:42 · 295 阅读 · 0 评论 -
队列类的设计
/*队列类的设计:(1)在定义对象时,能够确定队列的长度(2)定义enqueue和dequeue函数(3)定义运算符重载函数,确定队列是否为空(4)定义成员函数,返回队列长度(5)定义变换函数,返回队列中数据个数(6)定义析构函数*/#include<iostream>using namespace std;class queue{ int size; int...原创 2019-11-01 11:10:28 · 516 阅读 · 0 评论 -
数组类的设计
/*整型数组类的设计:(1)在设计对象时,能够自动为矩阵中每个元素清0(2)通过运算符重载,实现对两个矩阵的减法和乘法运算(3)通过对运算符的重载,实现矩阵中主对角线上的元素是否全为0的判断(4)实现按列为矩阵输入数据的成员函数(5)实现求矩阵中主对角线上元素最小值的成员函数*/ #include<iostream>using namespace std;#defin...原创 2019-11-01 11:09:43 · 327 阅读 · 0 评论 -
堆栈类的设计
/*堆栈类的设计:(1)在定义对象时能够确定堆栈的长度(2)给出push和pop函数的定义(3)通过运算符的重载,实现对堆栈是否为空的判断(4)定义变化函数,用于返回堆栈的长度(5)通过函数的递归调用,来计算堆栈中数据为0的元素的个数(6)给出main函数,在函数体中合理地调用上述每一个函数*/#include<iostream>using namespace std...原创 2019-11-01 11:09:06 · 862 阅读 · 0 评论 -
链表类的设计
/*链表类的设计:(1)向链表中插入元素,主要包括向链表头插入元素和向链表尾插入元素(2)从链表中删除元素,主要看、包括删去链表头的元素和删去链表尾的元素*/#include<iostream>using namespace std;class link{ friend class list; link *next; int x;public: link():x...原创 2019-11-01 11:08:32 · 192 阅读 · 0 评论 -
字符串类的设计
/*字符串类的设计:(1)在生成对象时,能够自动为字符串清空(2)允许为对象进行初始化操作(3)允许取出字符串中的任一字符(4)允许对字符串进行比较操作(5)提供获取字符串的功能*/#include<iostream>#include<string.h>using namespace std;class str{ char x[20];public...原创 2019-11-01 11:07:51 · 678 阅读 · 0 评论 -
计数器类的设计
/*计数器类的设计:(1)在生成类对象时,能够自动为计数值清零(2)计数值+1功能(3)计数值-1功能(4)获取计数值的功能*/ #include<iostream>using namespace std;class count{ int x;public: count():x(0) { } void operator++(int n) { x++;...原创 2019-11-01 11:07:11 · 961 阅读 · 0 评论 -
面向对象程序设计 第七章 继承 系统复习
面向对象程序设计 继承 系统复习原创 2019-10-29 20:41:47 · 237 阅读 · 0 评论 -
继承—继承方式下的构造与析构
/*分析构造函数和析构函数的执行过程*/#include<iostream>using namespace std;class test1{public: test1() { cout<<"enter test1 constructor"<<endl; } ~test1() { cout<<"enter test1 des...原创 2019-10-29 20:31:45 · 193 阅读 · 0 评论 -
继承—多重基类和虚拟基类
多重基类即之前的多重继承,在利用多重继承生成派生类时,会出现一些问题。class test1{ int x;public: int getx(){...} ...};class test2:public test1{};class test3:public test1{};class test4:public test2,public test3{};test4...原创 2019-10-29 20:16:48 · 222 阅读 · 0 评论 -
继承—继承的种类
1、多重继承只继承一个基类而生成的派生类——单一继承继承多个基类而生成的派生类——多重继承/*利用多重继承实现对整数、浮点数、字符串进行管理的功能*/#include<iostream>#include<string.h>using namespace std;class test1{ int x;public: test1(int a):x(a) ...原创 2019-10-29 19:48:30 · 251 阅读 · 0 评论 -
继承—虚析构函数
定义虚析构函数的目的是为了在调用析构函数时实现多态。/*在基类和派生类中都给出析构函数的定义,通过删除指向基类的指针来观察析构函数的执行过程*/#include<iostream>using namespace std;class test1{ int x;public: test1(int a):x(a) { } ~test1() { cout<&l...原创 2019-10-29 19:24:07 · 678 阅读 · 0 评论 -
继承—基类和派生类
/*说明派生类的生成和使用*/ #include<iostream>using namespace std;class test1//基类 { int x;public: test1():x(0) { } test1(int a):x(a) { } void disp() { cout<<"x="<<x<<endl;...原创 2019-10-29 14:38:02 · 155 阅读 · 0 评论 -
继承—虚函数和多态—静态结合
/*说明静态结合和动态结合的概念*/#include<iostream>using namespace std;class test1{ int x; int y;public: test1():x(0),y(0) { } test1(int a,int b):x(a),y(b) { } void disp() { cout<<"x="&l...原创 2019-10-29 14:54:34 · 124 阅读 · 0 评论 -
继承—虚函数和多态—虚函数(动态结合)
上一次我们说到了静态结合,定义指向基类的指针,当把基类对象和派生类对象的基址赋给指针后,通过指针调用disp函数,我们会发现:调用的成员函数都为基类的disp函数。 这是因为我们在一开始就定义指针指向基类,在运行的过程中无法改变这种结合,所以叫做静态结合。如果当我们把基类对象和派生类对象的基址赋给指针后,通过指针调用disp函数,能够分别实现基类和派生类成员函数disp的调用。也就是实现了所谓的...原创 2019-10-29 15:25:35 · 137 阅读 · 0 评论 -
继承—纯虚函数和抽象类
如果一个类只作为基类来使用,就绝不会在程序中生成基类的对象,这样基类中的disp函数的实体就不会使用。由于未使用的函数实体是一种浪费,可以把函数实体省略掉,无函数实体的虚函数叫做纯虚函数。/*纯虚函数的定义和使用*/#include<iostream>using namespace std;class test1{ int x; int y;public: test1...原创 2019-10-29 18:54:15 · 219 阅读 · 0 评论 -
面向对象程序设计 阅读程序并给出正确的结果
阅读程序并给出正确的结果,考察的有析构函数的调用顺序、复制构造函数何时调用、类的嵌套定义调用对象构造函数的顺序。原创 2019-10-24 20:54:15 · 285 阅读 · 0 评论 -
面向对象程序设计 类 结构、联合、位段
1、结构struct test相当于class test,唯一的不同之处在于如果不设置访问控制struct默认为public,而class默认为private。2、联合union默认的访问控制为public#include<stdio.h>union test1{ int z; struct test2 { char x; char y; }test2;}...原创 2019-10-23 11:28:15 · 157 阅读 · 0 评论 -
面向对象程序设计 类 指向类的成员的指针
(文末附四种指针的使用方法对比)1、指向类的非静态数据成员的指针//指针定义形式类型说明符 类名::*指针名;指针名=&类名::数据成员名;//指针使用形式对象名.*指针名这样赋值以后的指针是不能使用的,只有通过对象才能访问数据成员。#include<iostream>using namespace std;class test{public: i...原创 2019-10-23 10:51:54 · 162 阅读 · 0 评论 -
面向对象程序设计 类 const对象
const对象需要注意的问题:1、const对象又被称为常对象。2、将一个对象定义为const对象,如果不对类的成员函数进行特殊处理,则该对象不能访问所有的成员函数。3、const对象不能被修改。简单的一个程序说明const对象的使用方法:#include<iostream>using namespace std;class test{ int x;public:...原创 2019-10-22 21:40:12 · 452 阅读 · 0 评论 -
面向对象程序设计 类 静态数据成员和静态成员函数
需要注意的问题:1、什么样的数据成员可以被定义为静态的?对该类所有的对象的值都是一样的。2、如果成员函数被说明为静态的,该成员函数不再具有this指针,即静态成员函数不与某个具体的对象相联系,它是属于类的。3、静态数据成员和静态成员函数不是每生成一个对象就产生一个拷贝,所有的对象共用一个。4、由于静态成员函数没有this指针,所以不能对数据成员进行操作,只能通过对象来访问数据成员。5、静...原创 2019-10-22 21:11:04 · 473 阅读 · 0 评论 -
面向对象程序设计 类 变换构造函数和变换函数
1、变换构造函数我们把只有一个参数的构造函数称为变换构造函数。2、变换函数和变换构造函数不同,变化函数用于将对象中的一个值返回出来。变换对象一般采用如下格式:operator 变换的类型(){ return 返回值;}变换函数最基础的使用方法:#include<iostream>using namespace std;class test{ int x;...原创 2019-10-22 20:30:52 · 181 阅读 · 0 评论 -
面向对象程序设计 第六章 类 详细总结+系统复习
面向对象程序设计 第六章 类 系统复习原创 2019-10-21 20:53:39 · 286 阅读 · 0 评论 -
面向对象程序设计 类 析构函数
析构函数的说明以及使用方法原创 2019-10-20 21:37:20 · 215 阅读 · 0 评论 -
面向对象程序设计 类 函数的参数是对象的引用
#include<iostream>using namespace std;class test{ int x;public: test()//缺省构造函数 { x=0; } test(int a) { x=a; } void disp() { cout<<"x="<<x<<endl; }};/*当函数...原创 2019-10-20 21:36:10 · 266 阅读 · 0 评论 -
面向对象程序设计 类 函数的返回值为类的类型
#include<iostream>using namespace std;class test{ int x; int y;public: test(int a);//一个参数的构造函数 test(int a,int b);//两个参数的构造函数 void disp();};test::test(int a):x(a){}test::test(int ...原创 2019-10-20 21:34:43 · 431 阅读 · 0 评论 -
面向对象程序设计 类 构造函数的显式调用+构造函数的重载
构造函数的说明和应用。原创 2019-10-20 21:33:27 · 154 阅读 · 0 评论 -
面向对象程序设计 类 复制构造函数
复制构造函数的说明以及用途。原创 2019-10-20 21:29:33 · 282 阅读 · 0 评论 -
面向对象程序设计 实现多态性
#include<stdio.h>class animal{protected: int height;public: animal(int h) { height=h; } virtual void disp() { }};class dog:public animal{public: dog(int h):animal(h) { } voi...原创 2019-10-18 20:38:40 · 158 阅读 · 0 评论 -
面向对象程序设计 数组类的设计
设计一个类Matrix,用于对一整型8X8矩阵进行管理。要求:(1)在生成对象时,能够自动为矩阵中的每个元素清零(2)通过运算符重载,实现对两个矩阵的减法和乘法运算(3)通过运算符重载,实现矩阵中主对角线上的元素是否全为零的判断(4)实现按列为矩阵输入数据成员函数(5)实现求矩阵中主对角线上元素的最小值的成员函数(6)给出main()函数的定义,在函数体中合理的调用上述每一个函数自己...原创 2019-10-18 20:18:39 · 281 阅读 · 0 评论 -
面向对象程序设计 堆栈类的设计
可以实现的功能:(1)在定义对象时能够确定栈顶的长度(2)给出push()和pop()函数的定义(3)通过运算符重载,实现对堆栈是否为空的判断(4)定义变换函数,用于返回堆栈的长度(5)通过函数的递归调用,来计算堆栈中数据为0的元素个数(6)给出main()函数的定义,在函数体中合理地调用上述每一个函数自己写的程序:/*可以实现的功能:(1)在定义对象时能够确定栈顶的长度(2...原创 2019-10-17 20:23:25 · 683 阅读 · 0 评论 -
面向对象程序设计 字符串类的设计
可以实现的功能:(1)在生成对象时,能够自动为字符串清空(2)允许为对象进行初始化操作(3)允许取出字符串中的任一个字符(4)允许对字符串进行比较操作(5) 提供获取字符串的功能自己写的程序:/*可以实现的功能: (1)在生成对象时,能够自动为字符串清空 (2)允许为对象进行初始化操作 (3)允许取出字符串中的任一个字符 (4)允许对字符串进行比较操作 (5) 提供获取字...原创 2019-10-17 19:23:02 · 392 阅读 · 0 评论 -
2019面向对象程序设计 作业5
/*题目:基于链表的学生信息管理系统要求: (1)插入节点:输入学生信息后,生成节点并插入链表中; (2)删除节点:根据给定的学生姓名或学号删除该学生节点; (3)查找节点:根据给定的学生姓名或学号查找学生信息,并显示出来; (4)查找并显示总成绩最高和最低的学生信息; (5)统计链表中的学生人数; (6)(时间允许时选做)对链表节...原创 2019-10-15 20:10:48 · 206 阅读 · 0 评论 -
2019面向对象程序设计 作业4
/*定义一个类,用于对10个字符串进行管理。要求:(1)在定义对象时,能够为字符串清空;(2)定义变换构造函数,能够为字符串赋以给定的字符串;(3)定义复制构造函数;(4)定义成员函数,能够为字符串输入数据;(5)定义成员函数,能够将字符串显示出来;(6)定义成员函数,用于找出每个字符串中的最小值(ASCII码最小的字符)及其个数,最小值由函数值返回,个数由参数带回;(...原创 2019-10-15 20:09:46 · 167 阅读 · 0 评论 -
2019面向对象程序设计 作业3
/*设计一个类,用于对字符串进行管理。要求:(1)在定义对象时,能够确定字符串的最大长度并清空字符串。(2)定义成员函数input, 用于从键盘为字符串输入数据。(3)定义运算符重载函数,用于判断两个对象中的字符串是否相同。(4)定义成员函数exchange,用于互换字符串中ASCII码最大和最小的字符(需考虑字符串中存在多个最大和最小字符的情况)。(5)定义成员函数disp,...原创 2019-10-15 20:08:35 · 126 阅读 · 0 评论 -
2019面向对象程序设计 作业2
/*根据下列要求,编写完整程序。设计一个类,用于对10元整型数组进行管理。要求:(1)在定义对象时,能够为数组元素清0.(2)定义成员函数input, 用于为数组元素输入数据。(3)定义成员函数disp,用于显示数组的每个元素值。(4)定义成员函数max,用于找出数组元素的最大值及其个数,其中最大值由函数值返回,个数由参数带回。(5)定义成员函数find,用于找出数组中重复...原创 2019-10-15 20:07:13 · 189 阅读 · 0 评论 -
2019面向对象程序设计 作业1
/*从键盘输入R行C列二维整型数组,找出每一行的次最大值并显示出来。要求:(1)R和C为符号常量;(2)二维数组是动态申请生成的;(3)每一行的次最大值是利用单独的函数调用获得的;(4)对数组元素的访问以及函数参数声明等都是利用指针实现的。*/ #include<iostream>using namespace std;#define R 4#define C ...原创 2019-10-15 20:04:46 · 86 阅读 · 0 评论