- 博客(70)
- 收藏
- 关注

原创 计算机综合
——————————————————————————————————————————————————计算机硬件:硬件系统 计算机体系结构 主板 CPU 内存 显卡和显示器 机箱和电源 硬盘 光驱和刻录机 其他设备——————————————————————————————————————————————————操作系统:Win
2014-02-24 18:28:51
1208
转载 指针总结
C++ 指针初学者必看要了解指针,多多少少会出现一些比较复杂的类型,其实要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,其原则: 从变量名处起,根据运算符优先级结合,一步一步分析。 int p; //这是一个普通的整型变量int *p; //首先从P处开始,先与*结合,所以说明P是一个指针,然后再与
2014-04-18 20:09:47
779
1
转载 const总结
一、Const作用 如下表所示:No.作用说明参考代码1可以定义const常量 const int Max = 100; 2便于进行类型检查const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行
2014-04-18 20:03:54
1022
原创 this指针
this指针:1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也是加上this的,它作为非静态成员函数的隐含形参,对各成员的访问
2014-04-18 19:46:19
1117
原创 预编译
预编译:常用的预编译指令为:(1)包含指令 #include(2)条件指令 #if、#elif、#else、#endif、#ifdef、#ifndef(3)定义指令 #define、#undef 头文件卫士:头文件卫士的目的是要保护嵌套的包含指令中的内部链接属性的名称不被重复定义。#ifndef __A__#define __A__struct Date
2014-04-18 19:09:58
783
原创 C-串
在C++中,有两种字符串,一种是从C沿袭过来的,称为C—字符串,简称C—串。C—串为用双引号括起来的,以一个全0位(整数0)字节作为结束符的字符序列。C—串的空间长度为字符串长度加1。C—串的类型为char*(const char*)(字符指针),表示C—串的起始地址。(输出字符指针就是输出C—串,所以输出时从起始地址开始,直到遇到0为止)
2014-04-17 19:42:47
1116
原创 多态
在使用继承的时候,子类必然是在父类的基础上有所改变。如果两者完全相同,这样的继承就失去了意义。同时,不同子类之间具体实现也是有所区别的,否则就出现了一个多余的类。不同的类的同名成员函数有着不同的表现形式,称为多态性。多态性是符合人的认知规律的,即称呼相同,所指不同。 多态性往往只有在使用对象指针或对象引用时才体现出来。编译器在编译程序的时候完全不知道对象指针可能会指向哪种对象(引
2014-04-11 13:15:43
866
原创 继承
例子: 学生是一个抽象的概念,具体的有小学生、初中生、高中生等。任何一个学生都具有姓名、身高、体重、性别等属性。而不同阶段的学生在学习时,内容会有所不同。 为了描写小学生、初中生、高中生,可以写三个不同的类,但是会造成部分属性和功能的重复开发。也可以先设计一个学生类,描述出各种学生的共同属性或功能,然后再针对不同种类的学生做细节的修改。显然,第二种做法更为合理。
2014-04-11 12:32:40
963
原创 操作符重载
在C++中,操作符也是可以重载的,同一操作符对于不同的自定义数据类型可以进行不同的操作。 声明一个操作符重载的语句格式为:返回值类型 operator 操作符(参数列表); 在声明和定义操作符重载时需要注意以下几点:一、操作符只能是C++中存在的一些操作符,自己编造的操作符是不能参与操作符重载的。另外,“::”(域解析操作符)、“.”(成员操作符)、“ ?
2014-04-05 22:25:15
1222
原创 友元
类具备封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,非成员函数能够访问类中的公有成员,但是假如将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。 为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数,但需要在类体内进行说明,
2014-04-05 16:47:47
980
原创 静态成员
由于内存的空间有限,我们常常关心已经使用掉了多少内存空间。显然,我们需要一个计数器。每生成一个对象,计数器就加一;每消除一个对象,计数器就减一。 静态成员数据: 将生成对象的个数记为count,它不是某一个对象所具有的属性,而应该是整个类所具有的属性,或者说它是所有对象的共有属性。 count要能被任何一个结点使用,但事实上无论有多少个结点,count只
2014-04-04 16:32:08
993
原创 析构函数
构造函数(Constructor):随着对象的创建而自动被调用 析构函数(Destructor):随着对象的消亡而自动被调用 析构函数是一种随着对象消亡而自动被调用的函数,它的主要用途是释放动态申请的资源。它没有返回类型,没有参数,也没有重载。析构函数的函数名也是指定的,是在构造函数名之前加一个“~”符号。
2014-04-04 14:25:32
1744
原创 构造函数
构造函数: 构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象做初始化。 构造函数的声明与定义: 在C++中,规定与类同名的成员函数就是构造函数。需要注意的是,构造函数应该是一个公有的成员函数,并且构造函数没有返回值类型(没有返回值类型不是指void类型)。带参数的构造函数: 函数的特征之一就是能够在调用时带上参数
2014-04-03 20:21:35
840
原创 引用简介
一、引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名说明:(1)&在此不是求地址运算,而是起标识作用。(2)类型标识符是指目标变量的类型。(3)声明引用时,必须同时对其进行初始化。(4
2014-04-03 19:09:28
1051
原创 对象简介
面向对象(Object Oriented,简称OO) 其实单词Object更直观的翻译应该是物体。世界就是由各种物体组成的,比如某一辆汽车、某一个人、某一个杯子等等,这些都可以看作对象。 任何一个对象往往有一些具体的属性,比如某汽车的品牌、型号、排量,某人的性别、身高、体重,某杯子的口径,材质等等。任何一个对象往往能进行一些操作,比如汽车可以开动、拐弯,人可以走路、
2014-04-03 12:39:06
889
原创 程序调试
调试(Debug)主要分四个步骤和两种处理方式。程序的编译和连接统称为编译阶段,程序的运行和测试统称为运行阶段。在编译阶段发生的错误称为编译错误(Compile Error),在运行阶段发生的错误称为运行时错误(RuntimeError)。对于编译错误,可通过检查并修正语法错误来解决;对于运行时错误,可通过检查并修正语意(程序设计思想)错误来解决。 由于编译器是按
2014-04-02 12:30:13
1262
原创 头文件相关
头文件(Header File): 头文件的使用主要体现在两个方面,一个是重用(即多次使用),另一个是共用。 类似于标准库函数,在头文件里面应该模块化地给出一些函数或功能。另外还应该包括独立实现这些函数或功能的常量、变量和类型的声明。//shape.hstruct circle{ double r;};//shape.cppconst dou
2014-04-01 17:53:35
797
原创 链表
链表:struct node{ int data; node* next;}; 这个结构有两个成员数据,一个是整数data,另外一个是指向这种结构的指针next。那么若干个这样的结构变量,就能把这些变量连接成一条链子。 这些利用结构指针连接起来的结构变量称为链表(Link List),每一个结构变量(相当于链条中的每个
2014-03-31 12:12:32
1253
原创 共用体
共用体(union)的定义类似结构体,且同样能够存储不同类型的数据。不过共同体的所有成员都在同一段内存中存放,起始地址一样,并且同一时刻只能存储其中的一个成员变量 由于共用体同一时刻只能存储一个值(覆盖技术),因此它必须有足够的空间来存储最大的成员。结构体变量所占长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元。共用体变量所占的内存长度等于最长的成员的长度。
2014-03-30 23:45:44
1215
原创 结构体
C++中有一种数据类型称为结构(Structure)类型,它允许用户自己定义一种数据类型,并且把描述该类型的各种数据类型一一整合到其中。 定义一种结构类型的语法格式为: struct 结构类型名 { 数据类型 成员数据1; 数据类型 成员数据2;
2014-03-30 23:22:33
857
原创 枚举
C++中有一种数据类型称为枚举(Enumeration)类型,它允许用户自己来定义一种数据类型,并且列出该数据类型的取值范围。 定义枚举类型的语法格式为: enum 类型名{常量0,常量1,……,常量n-1}; 定义枚举类型的位置应该在程序首次使用该类型名之前,否则程序无法识别该类型。枚举类型中列出的常量称为枚举常量。它并不是字符串也不是
2014-03-30 21:40:24
825
原创 内存空间
数组的存储空间必须在程序运行前申请,即数组的大小在编译前必须是已知的常量表达式。空间申请得太大会造成浪费,空间申请得太小会造成数据溢出而使得程序异常。所以,为了解决这个问题,需要能够在程序运行时根据实际情况申请内存空间。 在C++中,允许在程序运行时根据自己的需要申请一定的内存空间,将其称为堆内存空间(Heap)。 获得堆内存空间: 用操作符new来动态
2014-03-29 23:04:36
1049
原创 指针与函数
向函数传递数组是将指针作为参数的特殊形式。 由于指针可以直接操作内存中的数据,所以它可以用来修改实参,这个功能和引用是类似的。指针和引用虽然都能够修改实参,但是指针却更加危险。因为引用仅限于修改某一个确定的实参,而指针却可以指向内存中的任何一个数据,通过间接引用就能够在一个函数内修改函数外甚至系统中的数据了。 为了避免指针作为函数参数导致数据被意外修改,可
2014-03-29 17:26:54
728
原创 保护措施
为了解决指针可能误修改或破坏内存中的数据,可以对内存中的数据加上写保护。即具有这种属性的指针只能够读出内存中的数据,却不能修改内存中的数据。把具有这种属性的指针称为指向常量的指针,简称常量指针。 给内存中的数据加写保护的方法是在声明指针时,在指针类型(即各种数据类型)前加上const,表示这些数据是常量,只能读不能写。比如:const int* iptr=&a ;,这时候就只能够
2014-03-29 17:01:26
925
原创 指针简介
在C++中,也可以给内存中的数据创建“快捷方式”,即为指针(Pointer)。它和整型、字符型、浮点型一样,是一种数据类型。指针也是一种变量,在内存中也有地址。指针中存储的并不是所要调用的数据本身,而是所要调用的数据在内存中的地址。 同变量的数据类型类似,指针也有类型。之所以指针会有类型,是为了符合对应的变量或常量数据类型。不同指针类型的本质在于不同的操作。一个字符型数据在内存中
2014-03-29 16:39:56
898
原创 函数的默认参数
默认参数: 在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。#includeusing namespace std;void create(int n=100); //在函数声明中定义默认参数int main(){ create(); //默认实参为100 create(5); //人工设
2014-03-29 15:13:38
1452
原创 函数重载
在C++中,可以把具有相同功能的函数整合到一个函数上,而不必去写多个函数,这叫做函数的重载(overload)。重载的本质是多个函数 ”共用” 同一个函数名。int abs(int a);//当参数为整型数据时的函数原型float abs(float a);//当参数为浮点型数据时的函数原型double abs(double a);//当参数为双精度型数据时的函数原型
2014-03-29 14:58:22
852
原创 main()函数
main()函数:一个程序,无论复杂或简单,总体上都是一个函数,这个函数就是“main()函数”(主函数),主函数意味着建立一个独立进程,且该进程成为了程序的入口,对其他各函数进行调用。(主函数肩负着入口和出口的重任) main函数在程序中大多数是必须存在的,但是依然有例外情况,比如windows编程中可以编写一个动态链接库(dll)模块,这是其他windows程序可以使用的代码。由于
2014-03-28 16:13:19
1739
原创 函数简介
函数(function)如果有一个现成求正弦值的函数,就不必自己去构造一个这样的函数。求正弦值的函数是可以多次使用的,并且可以求出任意实数的正弦值(合适的情况下),但是它却求不出一个虚数的正弦值(不合适的情况下)。包含(include)一个头文件,就是使用该头文件中的标准库(Standard Library)函数。 函数的声明(函数原型):返回值类型 函数名(参数列表); (
2014-03-28 00:23:23
777
原创 while 语句
当不知道循环要进行几次,只知道循环结束的条件时可使用while语句。while语句的具体语法格式:while (循环继续的条件){ 语句;}由于while循环是在循环语句块之前判断是否继续循环,所以又被称为“当型循环”。使用循环来查找结果的方法称为穷举法。 do...while语句:先执行一次语句,再判断是否继续执行(第一次循环一定能执行)。语法格式是:
2014-03-27 22:17:43
1259
原创 for 语句
for(初始化; 测试; 更新) { 循环体;}for(int i=0 ; i{ cout}如果循环继续的条件被省略,那么for语句就会认为循环始终进行,直到用其他方式将for语句的循环终止。 continue:不执行本次循环后面的语句,而是直接进入下一次循环。break:不执行本次循环后面的语句,并且跳出该循环,直接执行循环后的语句。
2014-03-27 21:49:36
735
原创 switch...case... 语句
switch case语句的使用:使用switch语句直接处理多个分支(当然包括两个分支).其一般形式为:switch(表达式){ case 常量表达式1:语句1; break;case 常量表达式2:语句2; break; ……case 常量表达式n:语句n; break; default:语句n+1; break;}
2014-03-27 19:22:55
2966
原创 if...else... 语句
把若干句语句放在一个大括号中,称为语句块。分号只是属于语句块中的语句。 关系运算的结果则是布尔型数据,也就是说它们的结果只有两种——真或假。所谓关系运算,是判断操作符两边数据的关系。这些关系一共有六种,分别是:等于(==)、大于(>)、小于(=)、小于等于(不等于(!=)。 逻辑运算: “与”的操作符是&&,“或”的操作符是||,“非”的操作符是!。 无论什么情况都
2014-03-27 19:04:31
905
原创 类简介
数据类型是各个变量的归类,而变量则是某个数据类型的具体表现,因此称变量为数据类型的一个实例(instance)。各个变量都有他们的属性:内容和占用内存空间等等;各个变量都有他们的操作:算术运算或逻辑运算等等。从这个角度来看,类和对象的关系就如同数据类型和变量的关系。不妨将类看作一种自定义的数据类型,那么对象就是一种属于该类型的变量。 类的定义:class Name{ p
2014-03-19 12:45:09
774
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人