C++程序设计
文章平均质量分 89
参考:《C++程序设计(第3版)》 谭浩强 编著
—Miss. Z—
Good Good Study,Day Day Up
展开
-
C++ map和vector向量使用方法
在C++中,vector是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。原创 2023-12-23 11:54:27 · 1128 阅读 · 0 评论 -
C++程序设计整理(Part Ⅱ)
原创 2022-03-16 08:52:32 · 250 阅读 · 1 评论 -
C++程序设计整理(Part Ⅰ)
C++程序设计整理1. C语言 VS C++C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,特别适合写系统软件。它是结构化和模块化的语言,是基于过程的。C++的提出:为了解决软件设计的危机C++保留了C语言原有的所有优点,增加了面向对象的机制。它是C语言的超集,既可用于基于过程的结构化程序设计,又可用于面向对象的程序设计。C++对C的"增强",表现在两个方面:①在原来基于过程的机制基础上,对C语言的功能做了扩充 ②原创 2022-03-02 10:31:35 · 396 阅读 · 0 评论 -
C++程序设计 上机实验(第14章——C++工具)
1. 求一元二次方程式ax2+bx+c=0ax^2+bx+c=0ax2+bx+c=0的实根,如果方程没有实根,则输出有关警告信息。原创 2022-02-04 10:16:17 · 940 阅读 · 0 评论 -
C++程序设计 上机实验(第13章——输入输出流)
1. 输入三角形的三边a,b,c,计算三角形的面积的公式是area=s(s−a)(s−b)(s−c),s=a+b+c2area=\sqrt{s(s-a)(s-b)(s-c)},s=\frac{a+b+c}2area=s(s−a)(s−b)(s−c),s=2a+b+c。形成三角形的条件是:a+b>c,b+c>a,c+a>b。编写程序,输入a,b,c,检查a,b,c是否满足以上条件,如不满足,由cerr输出有关出错信息。原创 2022-02-03 09:40:47 · 2460 阅读 · 0 评论 -
C++程序设计 上机实验(第12章——多态性与虚函数)
函数重载可以用于普通函数(非成员的函数)和类的成员函数,而虚函数只能用于类的成员函数。函数重载可以用于构造函数,而虚函数不能用于构造函数。如果对成员函数进行重载,则重载的函数与被重载的函数应当都是同一类中的成员函数,不能分属于两个不同继承层次的类。函数重载是横向的重载。虚函数是对同类族中的基类和派生类的同名函数的处理,即允许在派生类中对基类的成员函数重新定义。虚函数的作用是处理纵向的同名函数。原创 2022-02-02 10:47:48 · 1122 阅读 · 0 评论 -
C++程序设计 上机实验(第11章——继承与派生)
不同类型数据之间在一定条件下可以进行类型的转换,不同类型数据之间的自动转换和赋值,称为赋值兼容。基类和派生类对象之间也有赋值兼容关系,由于派生类中包含从基类继承的成员,因此可以将派生类的值赋给基类对象,在用到基类对象的时候可以用其子类对象代替。具体表现在以下几个方面:派生类对象可以向基类对象赋值可以用子类(即公用派生类)对象对其基类对象赋值。如A a1; //定义基类A对象a1B b1; //定义类A的公用派生类B的对象b1a1=b1; //用派生类B对象b1对基类对原创 2022-02-01 08:24:31 · 2427 阅读 · 0 评论 -
C++程序设计 上机实验(第10章——运算符重载)
1. 定义一个复数类Complex,重载运算符"+",使之能用于复数的加法运算。将运算符函数重载为非成员、非友元的普通函数。编写程序,求两个复数之和原创 2022-01-31 12:27:56 · 2071 阅读 · 0 评论 -
C++程序设计 上机实验(第8章——类和对象的特性 & 第9章——怎样使用类和对象)
运行时从键盘输入时、分、秒的值#include<iostream>using namespace std;class Time{public: //数据成员设置为公有的 int hour; int minute; int sec;};Time t;int main(){ void set_time(void); //函数声明 void show_time(void); //函数声明 set_time(); //函数调用 show_time(); //函数调用 r原创 2022-01-30 14:06:40 · 1704 阅读 · 0 评论 -
文件的读写
对文件进行格式化输入输出,这时就要用fprintf函数和fscanf函数,它们的作用与printf函数和scanf函数相仿,都是格式化读写函数。只有一点不同:fprintf和fscanf函数的读写读写不是终端而是外部文件。它们的一般调用方式为:fprintf(文件指针,格式字符串,输入表列);fscanf(文件指针,格式字符串,输入表列);原创 2022-01-29 12:01:34 · 792 阅读 · 0 评论 -
C++命名空间
命名空间是ANSI C++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突在C语言中定义了3个层次的作用域,文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不干扰,便于系统区别它们。如果在文件中定义了两个类,在这两个类中可以有同名的函数。在引用时,为了区别,应该加上类名作为限定原创 2022-01-28 11:13:35 · 465 阅读 · 0 评论 -
C++异常处理
在C++发展过程中,有的C++编译系统根据实际需要,增加了一些功能,作为工具来使用,其中主要有模板(包括函数模板和类模板)、异常处理、命名空间和运行时类型识别,以帮助程序设计人员更方便地进行程序的设计和调试工作。函数模板:所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量类型)可以不具体指定,而是用一个虚拟的类型来代替(实际上是用一个标识符来占位),等发生函数调用时再根据传入的实参来逆推出真正的类型。这个通用函数就称为函数模板。原创 2022-01-26 10:12:08 · 464 阅读 · 0 评论 -
常对象、常指针、常引用
C++虽然采取了不少有效的措施(如设private保护)以增加数据的安全性,但是有些数据却往往是共享的,例如实参与形参,变量与引用,数据及其指针等,人们可以在不同的场合通过不同的途径访问同一个数据对象。有时在无意之中的误操作会改变有关数据的状况,而这是人们所不希望出现的。既要使得数据能在一定范围内共享,又要保证它不被任意修改,这时可以使用const,即把有关的数据定义为常量。原创 2022-01-25 10:55:18 · 1020 阅读 · 0 评论 -
C++字符串流
文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据读入。字符串流也称为内存流。原创 2022-01-24 08:57:07 · 2034 阅读 · 2 评论 -
对ASCII文件的操作/对二进制文件的操作
对ASCII文件的操作如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件)。对ASCII文件的读写操作可以用以下两种方法:用流插入运算符"<<“和流提取运算符”>>"输入输出标准类型的数据。用文件流的put,get,getline等成员函数进行字符的输入输出。例:有一个整型数组,含10个元素,从键盘输入10个整数给数组,将此数组送到磁盘文件中存放。#include <fstream>原创 2022-01-23 10:34:37 · 1996 阅读 · 0 评论 -
输入和输出流(Part Ⅱ)
在头文件iostream.h中定义了cin,cout,cerr,clog4个流对象,cin是输入流,cout,cerr,clog是输出流cin是istream类的派生类的对象,它从标准输入设备(键盘)获取数据,程序中的变量通过流提取符">>“从流中提取数据。流提取符”>>"从流中提取数据时通常跳过输入流中的空格、tab键、换行符等空白字符。注意:只有在输入完数据再按Enter键后,该行数据才被送入键盘缓原创 2022-01-22 10:50:09 · 190 阅读 · 0 评论 -
输入和输出流(Part Ⅰ)
C++的输入与输出包括以下3个方面的内容:对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O以外存(磁盘、光盘)为对象进行输入和输出,这种输入输出称为文件的输入输出,简称文件I/O对内存中的指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)。这种输入输出称为字符串输入输出原创 2022-01-21 10:33:27 · 934 阅读 · 0 评论 -
多态性与虚函数(Part Ⅱ)
使用虚函数时,有两点要注意:只能用virtual声明类的成员函数,使它成为虚函数,而不能将类外的普通函数声明为虚函数。因为虚函数的作用是允许在派生类中对基类的虚函数重新定义。显然,它只能用于类的继承层次结构中。一个成员函数被声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具有相同的参数(包括个数和类型)和函数返回值类型的同名函数。原创 2022-01-20 12:59:53 · 177 阅读 · 0 评论 -
多态性与虚函数(Part Ⅰ)
多态性(polymorphism)是面向对象程序设计的一个重要特征。如果一种语言只支持类而不支持多态,是不能称为面向对象语言的,只能说是基于对象的。在面向对象方法中一般是这样表述多态性的:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。在C++中,多态性表现形式之一是:具有不同功能的函数可以用同一个函数名,这样就可以实现用一个函数名调用不同内容的函数。原创 2022-01-19 12:47:25 · 429 阅读 · 0 评论 -
继承与派生(Part Ⅲ)——多重继承 & 虚基类
一个类不仅可以派生出一个派生类,派生类还可以继续派生,形成派生的层次结构。原创 2022-01-18 08:59:40 · 1096 阅读 · 0 评论 -
继承与派生(Part Ⅱ)——派生类的构造函数/析构函数
由protected声明的成员称为"受保护的成员",或简称"保护成员"。受保护成员不能被类外访问,这点和私有成员类似,可以认为保护成员对类的用户来说是私有的。从类的用户角度来看,保护成员等价于私有成员。但有一点与私有成员不同,保护成员可以被派生类的成员函数引用。如果基类声明了私有成员,那么任何派生类都是不能访问它们的,若希望在派生类中能访问它们,应当把它们声明为保护成员。如果在一个类中声明了保护成员,就意味着该类可能要用作基类,在它的派生类中会访问这些成员。原创 2022-01-17 13:11:26 · 4365 阅读 · 2 评论 -
继承与派生(Part Ⅰ)
面向对象程序设计有4个主要特点:抽象、封装、继承和多态性面向对象计算强调软件的可重用性。C++语言提供了类的继承机制,解决了软件重用问题。在C++中可重用性是通过"继承"这一机制来实现的。因此,继承是C++的一个重要组成部分。在C++中所谓"继承"就是在一个已存在的类的基础上建立一个新的类。已存在的类称为"基类"或"父类"。新建立的类称为"派生类"或"子类"。原创 2022-01-16 12:08:12 · 427 阅读 · 0 评论 -
运算符重载(Part Ⅱ)
重载流插入运算符"<<“和流提取运算符”>>":C++编译系统已经对"<<“和”>>"进行了重载,使之作为流插入运算符和流提取运算符,能用来输入和输出C++标准类型的数据。对于自己定义的类型的数据(如类对象),是不能直接用"<<“和”>>"来输出和输入的。如果想用它们输出和输入自己声明的类型的数据,必须对它们重载。原创 2022-01-15 10:26:53 · 542 阅读 · 0 评论 -
运算符重载(Part Ⅰ)
运算符重载使C++具有更好的扩充性和适应性。这是C++功能强大和最吸引人的一个特点。原创 2022-01-14 12:44:45 · 457 阅读 · 0 评论 -
类模板/友元
友元:友元可以访问与其有好友关系的类中的私有成员。友元包括友元函数和友元类。在C++中,这种关系以关键字friend声明。友元函数:如果在本类以外的其他地方定义了一个函数(这个函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数),在类体中用friend对其进行声明,此函数就称为本类的友元函数。友元函数可以访问这个类中的私有成员。原创 2022-01-13 12:33:37 · 903 阅读 · 0 评论 -
析构函数/对象数组/对象指针/this指针
析构函数的作用与构造函数相反,它的名字是类名的前面加一个“~”符号。在C++中"~"是位取反运算符,从这点也可以想到:析构函数是与构造函数作用相反的函数。当对象的生命期结束时,会自动执行析构函数。原创 2022-01-12 11:33:00 · 813 阅读 · 0 评论 -
对象的赋值和复制/静态成员
对象的建立和释放:在需要用到对象时才建立对象,在不需要用该对象时就撤销它,释放它所占的内存空以供别的数据使用,这样可以提高内存空间的利用率可以用new运算符动态地分配内存,用delete运算符撤销对象。用new运算符动态地分配内存后,将返回一个指向新对象的指针的值,即所分配的内存空间的起始地址。用户可以获得这个地址,并通过这个地址来访问这个对象。在执行new运算时,如果内存量不足,无法开辟所需的内存空间,目前大多数C++编译系统都使new返回一个0指针值(NULL)。原创 2022-01-11 15:07:29 · 942 阅读 · 0 评论 -
C++构造函数
C++提供了构造函数来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。原创 2022-01-10 11:33:12 · 344 阅读 · 0 评论 -
类和对象的特性
类是用户建立的类型。如果程序中要用到类类型,必须自己根据需要进行声明,或者使用别人已设计好的类。C++中声明类类型的方法和声明一个结构体类型是相似的。原创 2022-01-09 14:43:05 · 511 阅读 · 0 评论 -
类和对象的特性——面向对象程序设计方法概述
对象所具有的3个重要特征:封装、继承、多态原创 2022-01-08 13:21:54 · 1408 阅读 · 0 评论 -
用new和delete运算符进行动态分配和撤销存储空间
在软件开发中,常常需要动态地分配和撤销空间。在C语言中是利用库函数malloc和free来分配和撤销内存空间的;C++提供了较简便而功能较强的运算符new和delete来取代malloc和free函数原创 2022-01-07 11:12:29 · 2644 阅读 · 0 评论 -
指针与引用
指针是C和C++中的一个重要的概念。指针的概念比较复杂,使用也比较灵活,正确而灵活地运用它,可以使程序简洁、紧凑、高效。原创 2022-01-06 17:47:19 · 651 阅读 · 0 评论 -
字符串类与字符串变量
C++处理字符串的方法——字符串类与字符串变量原创 2022-01-04 10:38:31 · 2445 阅读 · 4 评论 -
内置函数/函数的重载/函数模板/有默认参数的函数
参考数目:《C++程序设计(第3版)》谭浩强 编著(清华大学出版社)C++内置函数/函数的重载/函数模板/有默认参数的函数原创 2022-01-03 10:49:02 · 553 阅读 · 0 评论 -
C++程序设计课后习题
参考数目:《C++程序设计(第3版)》谭浩强 编著第1章——C++的初步认识1. 请根据你的了解,叙述C++的特点。C++对C有哪些发展?C++主要有三个特点,即封装性、继承性和多态性。封装性:对于"计算机"这个类,我们将"计算机"的属性(如:颜色、重量、体积、样式等)和行为(启动、关机、散热等)全部打包封装在计算机类中,这样一方面使我们可以容易地看出这些属性和行为的"主人"是什么,进一步方便使用;另一方面也使这些属性和行为不会被错误地访问(例如,汽车也有启动这一行为,这就与计算机的启动行为重复原创 2021-12-31 19:08:47 · 1000 阅读 · 0 评论 -
C++的初步认识
C++并不是纯粹的面向对象的语言,它是一种混合语言。学习C++既可以编写过程化的程序,也可以编写面向对象的程序。实际上,C语言相当于C++的过程化部分。原创 2021-12-30 18:54:03 · 1992 阅读 · 0 评论