C++
laoduan_78
在位则谋政
展开
-
C++学习摘要之五:静态成员
第五章 静态成员在一个类中还可以定义静态成员,但静态成员是所有对象公有的。静态成员分为静态数据成员和静态成员函数。1.静态数据成员在类中定义静态数据成员的方法就是在该成员的前面加上关键字static。定义静态数据成员的语句格式如下:class 类名{ …… static 类型说明符 成员名; ……};静态数据成员是类的所有对象共享原创 2006-12-11 10:43:00 · 1190 阅读 · 0 评论 -
C++学习摘要之六:友元函数与友元类
第六章 友元函数与友元类采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提供了工序的运行效率,但又破坏了类的封装性。1.友元原创 2006-12-11 10:46:00 · 2226 阅读 · 0 评论 -
C++学习摘要之七:运算符重载
第七章 运算符重载C++语言中预定义的运算符的操作对象只能是基本数据类型,但是,在实际应用中,对于很多用户自定义数据类型(如类)也需要类似的功能,这就需要对已有的运算符赋予多种含义,使同一个运算符具有作用于不同类性的数据导致不同类型的行为,这就是运算符重载。因此,运算符重载的目的是设置C++语言中的某一运算符,让它们之间并不冲突,C++语言会根据运算符的位置辨别应使用哪一种功能进行运算。可原创 2006-12-11 10:47:00 · 1341 阅读 · 0 评论 -
C++学习摘要之八:模板
第八章 模板模板(template)利用一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型,利用模板功能可以构造相关的函数或类的系列,因此模板也可称为参数化的类型。在C++语言中,模板可分为类模板(class template)和函数模板(function template)。在程序中说明了一个函数模板后,编译系统发现有一个相应的函数调用时,将根据实参中的类型来确认原创 2006-12-11 10:49:00 · 1430 阅读 · 0 评论 -
C++学习摘要之一:类和对象
第一章 类和对象 类和对象是面向对象程序设计的两个最基本、最重要的概念。所谓对象就是客观事务在计算机中的抽象描述;而所谓类则是对具有相似属性和行为的一组对象的统一描述。从程序设计语言的角度来说,类是一种数据类型,而对象是具有这种类型的变量。1.类的定义类定义的一般形式为:class 类名{ private: 数据成员或成员函数原创 2006-12-09 16:01:00 · 2088 阅读 · 0 评论 -
C++学习摘要之二:构造函数和析构函数
第二章 构造函数和析构函数 构造函数和析构函数是类的两个特殊的成员函数1.构造函数构造函数(constructor)是类的一个特殊的成员函数,它与类名同名。当定义该类的对象时,构造函数将被系统自动调用用以实现对该对象的初始化。构造函数不能有返回值,因而不能指定包括void在内的任何返回值类型。构造函数的定义与其他成员函数的定义一样可以放在类内或类外。原创 2006-12-09 16:06:00 · 2800 阅读 · 0 评论 -
C++学习摘要之三:继承和派生
第三章 继承和派生继承性是面向对象程序设计最重要的机制之一。 1.继承的概念所谓继承(inheritance)就是利用已有的数据类型定义出新的数据类型。在继承关系中,被继承的类称为基类(base class)或父类,而通过继承关系定义出来的新类则被称为派生类(derived class)或子类。派生类既可以对基类的性质进行扩展又可以对基类进行限制,从而得到更原创 2006-12-09 18:56:00 · 2254 阅读 · 0 评论 -
C++学习摘要之四:虚函数和多态
第四章 虚函数和多态多态性与前面提到的数据封装和继承性共同构成了面向对象程序设计的三个重要机制。1.静态联编与动态联编由于函数重载的存在,当程序中出现调用同名函数时,编译器会根据函数的参数类型、个数决定调用执行哪一个同名函数的代码,这种把一个函数的调用与适当的函数实现代码联系在一起的过程,叫做联编。根据联编的实现阶段的不同,可将其分为静态联编和动态联编两种。静态联编原创 2006-12-09 20:44:00 · 1495 阅读 · 0 评论 -
C++学习摘要之九:C++流和文件流
第九章 C++流和文件流在程序设计中,数据输入/输出(I/O)操作是必不可少的,C++语言的数据输入/输出操作是通过I/O流库来实现的。C++中把数据之间的传输操作称为流,流既可以表示数据从内存传送到某个载体或设备中,即输出流,也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流。在进行I/O操作时,首先是打开操作,使流和文件发生联系,建立联系后的文件才允许数据流入和流出,输入原创 2006-12-11 10:52:00 · 6031 阅读 · 0 评论 -
学习C++的50条忠告(转载)
1.把C++当成一门新的语言学习(和C没啥关系,真的); 2.看《Thinking In C++》,不要看《C++编程思想》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他转载 2009-09-21 21:38:00 · 2085 阅读 · 0 评论 -
程序的编写风格
编程风格虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,是程序风格的重要构成因素。1. 空行空行起着分隔程序段落的作用。空行得体(不能过多也不能过少)将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不要舍不得用空行。 ¯ 在每个类声明之后、每个函数定义结束之后都要加空行。例如:转载 2009-09-21 21:31:00 · 2080 阅读 · 0 评论 -
指针部分释疑之一:指针的实质
指针部分释疑 一、指针的实质在学习C/C++过程中,可能大多数学习者对指针都会产生厌烦乃至抵触情绪。的确,对于初学者来讲,指针是不好理解,也不好用,好多学习者喜欢采用不用指针的方式来解决问题,即“能不用指针就不用指针”,甚至把指针当成了人人喊打的“goto”来看待……而其实,指针也是冤枉的,大家看到的都是指针的缺点,却没有人意识到指针的好处。那么,指针到底是什么,怎么用,怎么样才能原创 2009-10-08 15:43:00 · 1691 阅读 · 0 评论 -
指针部分释疑之二:内存的分配及内存错误类型(续)
4.常见的内存使用故障内存泄露故障(Memory Leak Faults,MLF)是指在程序的某处申请了大小为X字节的空间,方式程序结束时这X字节的空间全部或部分没有释放、多次释放都属于内存泄露故障。MLF有三种形式:(1) 遗漏故障:申请的内存没有释放;(2) 不匹配故障:申请函数和释放函数不匹配;(3) 不相等的释放:释放的空间和申请的空原创 2009-10-12 14:19:00 · 1581 阅读 · 0 评论 -
指针部分释疑之一:指针的实质(续)
2.指针的算术运算指针变量也可以进行算术运算,但只能进行加上或减去一个整数操作。不过,这种加减运算和我们学习算术运算符的加减操作还是有很大区别的。int a[10] ;int *p = a ;p++ ;上例中,在上例中,指针p的类型是int *,它指向的类型是int,它被初始化为指向整型数组名a。接下来的第3句中,指针p被加了1,编译器是这样处理的:它把指针p的值加上了size原创 2009-10-10 10:50:00 · 1191 阅读 · 0 评论 -
指针部分释疑之二:内存的分配及内存错误类型
二、内存的分配及内存错误类型1.内存的分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(原创 2009-10-10 10:56:00 · 2531 阅读 · 1 评论 -
实验报告格式与写法
附:实验报告的编写方法共七部分,分别为:一、实验目的(实验目的中红色的内容)二、实验内容(本次实验要完成的内容)三、概要设计(实现的功能,函数原型及说明等)四、详细设计(程序中核心代码,并要有相应注释——函数功能、参数说明、重要语句的注解)五、程序调试(包括调试过程中遇到的问题及解决方法、程序测试数据及结果,须有截图)六、实验总结(原创 2009-10-11 14:25:00 · 6351 阅读 · 1 评论 -
学习C++之道
想要提高C++学习方法并非一朝一夕之事,需要长期的探索和积累。前人的经验是可以借鉴的,但必须充分结合自己的特点。影响学习效率的因素,有学习之内的,但更多的因素在学习之外。 所谓C++学习方法,就是人们在学习过程中所采用的手段和途径。它包括学习知识的方法、学习原创 2011-09-26 18:28:18 · 1559 阅读 · 0 评论 -
深拷贝与浅拷贝的区别
拷贝构造函数是类中的一个特殊的成员函数,同时拷贝构造函数也是构造函数的一种,其函数名与类名相同,无返回类型,其作用也是为类的成员初始化以及为对象的构造分配存储空间,不同的是,拷贝构造函数的参数只有一个,且必须为该类对象的引用。 拷贝构造函数只有在使用一个对象初始原创 2011-10-05 22:47:06 · 5763 阅读 · 0 评论 -
堆和栈的区别
堆和栈是两个不用概念(转自百度知道,略有修改)一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(Operating System)回收 。注意它与转载 2011-11-01 14:49:37 · 1950 阅读 · 3 评论 -
面向对象第一次作业
以下问题均用C++程序(VC6.0)书写,可不用面向对象技术,采用结构化程序设计即可上交时间:2015.9.30日(含)之前,将六个cpp源文件压缩为一个压缩文件,文件名为“学号姓名第一次作业”(例如01201101张三第一次作业.rar),发到455799815@qq.com1.编写程序,从键盘输入三个值,并打印其和、平均数、积、最小值和最大值。2.编写一个程序,计算0到10的平方和立方,并用制原创 2015-09-25 10:08:22 · 3396 阅读 · 6 评论 -
Winxp虚拟机(含VC++及C++书籍资料)下载说明
进入百度云盘,用户名:455799815@qq.com,密码:softwarec++其中,xp文件较大,下载可能会比较费时,下载后大家互相传一下,另外一个vmware软件的版本是9.0,大家也可以到百度搜索下载原创 2015-09-28 18:51:22 · 1591 阅读 · 1 评论 -
面向对象第一次实验
实验一 类与结构1、实验目的·了解和使用 VC++的集成开发环境。·熟悉 VC++集成开发环境的基本编辑命令及功能键 , 学会常规窗口操作。熟悉常用功能菜单命令。·学习完整的 C++ 程序开发过程 ( 编辑、编译、连接、调试、运行及查看结果 ).理解简单的 C++ 程序结构。·通过实验理解类与结构的区别,掌握类的定义,了解用户自定义数据类型。·理解标准库函数,学习基本流输入输出(cout,cin)原创 2015-09-29 17:17:01 · 1818 阅读 · 1 评论 -
面向对象第三次实验
实验三 析构函数1、实验目的通过实验理解析构函数的概念与其特殊应用。2、实验内容应用VC++6.0的编辑环境构造一个类Student,该类主要实现学生的基本操作,该学生类包含学生姓名、学生学号、学生成绩(课程数目不定,其存储空间应动态申请),实现对该学生信息的初始化、求该学生的总成绩、平均成绩、最高分与最低分以及最后输出,具体说明如下:class Student{public: St原创 2015-10-18 09:40:42 · 1562 阅读 · 0 评论 -
面向对象第四次作业
本次作业要求于2015年10月24日(含)之前完成以三个附件(两个cpp文件和一个txt文件,不用压缩)形式发送到455799815@qq.com邮箱中,邮件主题为“学号姓名第四次作业”1.定义一长度为20的整型数组,然后利用循环从键盘向数组输入15个数据(无序) (1)写一个函数void Insert(int *arr,int i,int x); 参数说明: arr 数组指针 i原创 2015-10-18 09:43:54 · 1834 阅读 · 1 评论 -
面向对象第一次实验参考代码
#include #include //Global variable int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};//days of month char *Week[7] = {"Sunday","Monday","Tuesday","Wednesday","Thurday","Friday","原创 2015-10-18 10:21:01 · 1224 阅读 · 0 评论 -
面向对象第二次作业参考代码
#include #include #include int rollDice(void); void main() { enum Status{CONTINUE,WON,LOST}; int sum,myPoint,num = 1; Status gameStatus; srand(time原创 2015-10-18 10:26:49 · 1108 阅读 · 0 评论 -
成员函数的重载、覆盖与隐藏
成员函数的重载、覆盖与隐藏 成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。1.1 重载与覆盖 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分转载 2011-10-25 15:25:31 · 1217 阅读 · 0 评论 -
面向对象第一次作业参考答案
第一题:#include void main() { int a,b,c; int d; cout<<"Input three different integers:"; cin>>a>>b>>c; cout<<"Sum is "<<a + b + c<<endl; //sum cout<<"Average原创 2015-10-07 23:13:50 · 3691 阅读 · 0 评论 -
面向对象第二次作业
本次作业要求在2015.10.11(含)之前完成以附件形式(一个cpp文件,不用压缩)发送到455799815@qq.com题目描述:游戏者投两枚骰子,每个骰子有六面,这些面包含1、2、3、4、5、6个点。投两枚骰子之后,计算点数之和。如果第一次投时的和为7或11,则游戏者获胜。如果第一次投时的和为2、3或12,则游戏者输,庄家赢。如果第一次投时的和为4、5、6、8、9或10,则这个和成为游戏者的原创 2015-10-07 23:22:09 · 1961 阅读 · 1 评论 -
面向对象第三次作业部分参考代码
#include #include #include int rollDice(void); int winnum = 0,losenum = 0; int s[11]={0}; void game() { enum Status{CONTINUE,WON,LOST}; int sum,myPoin原创 2015-10-23 20:24:22 · 1230 阅读 · 0 评论 -
面向对象第四次作业参考代码
第一题:数组#include const int MAXSIZE = 20;class List{public: List() { arr = new int[MAXSIZE]; //Allocation the space length = 0; //the length of current array cout<<原创 2015-10-25 11:29:16 · 1530 阅读 · 0 评论 -
面向对象第四次实验
实验四 静态成员与友元1、实验目的(1)学习静态成员的使用,理解静态成员的特殊用途。(2)学习友元函数及友元类,领会友元类的作用。2、实验内容 应用VC++6.0的编辑环境构造一个类Stack,设计一个整数链表类,实现栈操作。类中需有记录结点个数的数据成员(静态成员),要有判空操作。编制应用程序,取100次随机数( 用堆分配方法逐个产生满足条件(递增有序)的结点,插入栈原创 2015-10-25 11:32:38 · 2168 阅读 · 0 评论 -
面向对象第三次作业
本次实验要求于2015年10月18日(含)之前完成并以一个文本文档(记录第一题答案)和一个cpp文件(第二题程序)发送到455799815@qq.com邮箱中(不用压缩,共两个附件),邮件主题为“学号姓名第三次作业”一、运行第二次作业程序10000次,然后回答下列问题:(1)该游戏赢的机会有多少?(2)投骰子游戏平均长度是多少(即平均投多少次骰子)?(3)游戏玩的越久,赢的机会是否越多?为什么?(原创 2015-10-11 10:54:31 · 1829 阅读 · 0 评论 -
面向对象第二次实验
实验名称:构造函数一、实验目的 通过实验理解构造函数的概念与其特殊应用。二、概要设计 应用VC++6.0的编辑环境构造一个类Triangle,该类主要实现三角形的基本操作,例如初始化(构造函数及构造函数的重载)、求三角形的周长、面积、判断该三角形是什么三角形(等边、等腰、直角、等边直角、一般三角形、非三角形)、输出(包括“输入数据非法”)等,具体说明如下:class T原创 2015-10-11 10:45:51 · 1712 阅读 · 0 评论 -
面向对象第五次作业
本次作业大家可以先行尝试思考下具体应该设计几个类,每个类的数据成员和成员函数是什么,然后尝试着实现一下,代码本周不用上交。问题描述:有品牌汽车的风挡玻璃雨刷(Wiper)是由带刻度盘(Dial)的控制杆(Lever)控制的。这种控制杆有四个位置:停止、间歇、低速和高速,刻度盘有三个位置,分别是数字1、2和3。刻度盘位置指示三种间歇速度,刻度盘的位置只有当控制杆在间歇位置时才有意义。以下表格给出了挡原创 2015-10-27 16:11:14 · 2697 阅读 · 1 评论