前言
面向对象编程语言把事物看成是具有属性和行为的对象,通过抽象出属于同一类的事物的属性和行为,形成类。通过类的继承和多态可以很好的实现代码复用,提高软件开发效率。将数据(属性)和处理数据的方法(行为)放到一个整体里,这个整体就叫对象,同类型对象抽象成类,类中大部分数据只能用本类中的方法处理,类通过简单的外部接口与外界发生关系,而内部的各种关系对外界是透明的。 面向对象的几个基本概念:
1. 对象:每个对象都是描述客观存在事物的一个实体,都是由数据(属性)和处理数据的
方法(行为)构成。属性描述事物特征,行为描述对对象属性的一些操作。
对象(实物)=属性(数据)+行为(操作方法)
2. 类:类是具有相同属性和行为的一些对象的集合。它为所有属于这个类的对象提供抽象
的描述。
类=对象的集合
3. 封装:封装就是把对象的所有属性和行为结合成一个独立地单位,对外隐藏对象的内部
细节,只保留几个与外界联系的接口。
4. 继承:一个类(子类)可以通过继承另一个类(父类)来拥有另一个类的所有属性和行
为。
5. 多态性:多态性就是说父类中的属性和行为被子类继承之后,子类可以有自己不同于父
类的属性和行为。(这里看貌似子类可以比父类更强大)
C++编程入门系列一 进制数
二进制、十进制、八进制、十六进制 计算机数据的存储单位: 位:数据的最小单位,表示一位二进制数据。 字节:由八位二进制数据组成。 字:位的组合,作为一个独立地信息处理单元。取决于机器的类型、字长及使用者的要求。常用的固定字长有8位、16位、32位等。 机器字长:机器字长是一个与机器硬件指标有关的单位,一般指参加运算的寄存器所含有的二进制的位数,它代表了机器的精度,如32位、64位等,就是我们常说的32位机器还是64位机器。
二 原码、反码与补码 三 VS2010使用介绍
程序开发过程中的几个基本概念:源程序、目标程序和翻译程序。 源程序就是我们用各种语言编写的代码,可以是汇编语言或高级语言等其他语言所写。目标程序是经过翻译之后生成的程序,可以用机器语言表示,也可以是汇编语言等其他中间
语言表示。例如我们所写程序编译之后的Obj文件就是目标程序。翻译程序就是把源程序翻译成目标程序的程序。翻译程序有三种类型:汇编程序(将汇编语言源程序翻译成目标程序的翻译程序)、编译程序(将高级语言源程序翻译成目标程序的翻译程序)和解释程序(同样用于翻译高级语言,但它是输入一句,翻译一句,执行一句,直到整个源程序被翻译执行完毕,效率较低)。我们通过利用翻译程序将源程序转换为可执行的目标程序。 msdn是VS2010的帮助文件。 解决方案资源管理器中我们可以看到所有的头文件(.h后缀)和源文件(.cpp后缀)构成的树。一个解决方案当中可以包含多个工程。类视图显示了每个工程projection中的每个类,同样采用树状结构。资源视图显示了界面工程中使用的一些界面资源。底侧标签中的output为输出视图,用来输出程序运行信息和调试信息。还有Find Result视图,用来显示搜索的结果。 几种常见的工程类型:Win32 Console Application是Win32控制平台程序;MFC Application是MFC应用程序;Win32 Project是Win32程序;Empty Project是空程序;MFC DLL用来建立生成动态链接库的工程。Win32 Console Application工程只能提供一个Dos命令行界面,它的入口是main函数,而Win32 Project的入口是WinMain函数。
四 数据类型
#include
关键字:关键字是C++预定义的一些单词,我们定义的变量和常量不能与关键字重名。Tips:cin和cout实际上并不是关键字,而是在C++标准库中预先定义的标识符,可以对它们进行重定义。
标识符:标识符是我们自己定义声明的单词,用来命名一些实体,如函数名、变量名、类名、对象名等等。标识符的构成规则:1.只能由字母、数字和下划线组成;2.数字不开头;3.不能与C++关键字重名。C++区分大小写;C++标识符没有长度的限制,但具体的编译器会忽略一定长度之后的所有字符。约定:针对面向对象编程,约定采用大小写混写的方式,变量首字母小写,词界采用大写字母标志,如:topSpeed。 文字:指在程序中用符号表示的数据,包括数字、字符、字符串和布尔文字等。 空白:编译器分析代码时会将代码分成词法记号和空白,空白包括空格、制表符、换行符和注释。
C++的数据类型:
1. 基本数据类型
C++的基本数据类型有bool、char、int、float、double.有几个关键字signed和unsigned、short(占2字节)和long(占4字节)起修饰作用。
2. 常量
所谓常量就是在程序运行过程中值始终不会改变的量,就是直接用文字表示的值。常量又包含整型常量、实型常量、字符常量(包含转义字符)、字符串常量和布尔常量。
3. 变量
在使用之前必须先声明变量的类型和名称。变量名也是标识符,需要遵循标识符的命名规则。变量赋初值的一种特殊形式:int num(3); Tips:C++当中变量的声明和定义是不同的,声明一个变量仅仅是引用该变量的名字和类型,而定义一个变量会为该变量分配存储空间。
4. 符号常量
常量除了可以用文字表示之外,还可以给常量起名字,即符号常量。声明之后这个符号常量就代表了那个常量。声明形式:const 数据类型说明符 常量名=常量值 或者 数据类型说明符 const 常量名=常量值;例:const float pi=3.1415926; 或 float const pi=3.1415926;
5. string类
C++没有表示字符串的基本类型,但是提供了string类用于对字符串进行各种操作和处理,要使用string类就必须在程序中引入string库:include
五 运算符和表达式 1. 算数运算符和算数表达式
求余运算符“%”的操作数必须是整数,例如5%2=1,求余运算符的优先级与“/”相同。
如果除运算符“/”两边的操作数为整数,则结果的小数部分将被舍掉,例如3/2=1 这里其实是一个运算结果与运算操作数类型的关系,运算结果的数据类型与操作数当中较为高级的类型保持一致,例如两个操作数当中,一个为double、一个为int,则运算结果的类型为double,上例中两个int型操作数的结果也一定会是int型,不可能产生double型,而且结果不会四舍五入,只会直接将小数点后的部分舍掉。
注意:在一个表达式中如果”/”号两边的操作数都是整型的常数,那么该除法得到的结果仍然只能是整型。Eg:number = (1/3)*3; //即使number的类型为double,最终number也等于0,因为1/3的结果为零。正确写法应该是number = (1.0/3)*3;
自增自减运算符:自增自减运算符有两种方式:n++是先返回n的值,再使n+1;++n则是先使n+1,再返回n的值进行使用,此时n的值已经完成了+1。注意:自增自减运算符只能用于单个变量,不能用于表达式。例如(x+y)++是非法的表达式。
2. 赋值运算符和赋值表达式
赋值表达式的类型是等号左边对象的类型,赋值表达式的值也是等号左边对象将被赋值后的值,赋值运算符的结合性是自右向左。 左值和右值:左值是指出现在赋值运算符左边的各种类型的变量,右值是指出现在赋值运算符右边的各种可求值表达式。
3. 逗号运算符和逗号表达式
逗号表达式的值为最右边那个表达式的值。例如:a=1*2,a+3; 则从左向右开始依次计算表达式的值,最终逗号表达式的值为5。
4. 逻辑运算和逻辑表达式
关系运算符:<、<=、>、>=、==、!=。其中前四个比较运算符的优先级高于后两个。关系表达式的值只能是true或false。
逻辑运算符包括!、&&、||,优先级依次降低。逻辑表达式的值只能是true或false。
5. 条件运算符和条件表达式
条件运算符是C++中唯一一个三元运算符。形式为表达式1?表达式2:表达式3;表达式2和表达式3的类型可以不同。条件表达式的类型为表达式2和3当中较高的类型。
6. sizeof运算符
sizeof运算符用来计算某个对象在内存中占用的字节数。使用形式为:sizeof(类型名)或sizeof(表达式)。
7. 位运算
&(按位与)、|(按位或)、^(按位异或:对应位不同才为1)、~(按位取反)、<<(左移运算:将一个数的二进制值向左移位,左移后,低位补0,高位舍弃。例如a<<2就是将a的二进制数左移两位)、>>(右移运算:右移后,低位舍弃,高位补符号位)
8. 混合运算时数据类型的转换
隐式类型转换:当操作数类型不同时自动进行的操作数由低到高的转换,隐式转换是安全的,不存在精度损失。各类型从低到高依次为:char、short、int、unsigned int、long、unsigned long、float、double。
强制类型转换:C++提供6种不同的类型转换方式,其中有4中类型转换是新的C++标准当中给出的。下面分别介绍新旧类型转换方式:
旧的类型转换方式:(类型说明符)表达式。 类型说明符(表达式)
新的类型转换方式:static_cast
dynamic_cast
型,常用于继承层次当中
reinterpret_cast
对于类型转换值得注意的几点:1. 类型转换表达式是生成一个新的变量,而并不对原变量造成任何改变;2. 不同类型之间类型转换的实现规则:int->float/double——在原变量数值之后加小数点和0、float/double->int——直接舍去小数点后的所有位,不进行四舍五入;
9. 运算符的结合性
运算符的结合性是指一个双目运算符在进行计算时,如果两边的操作数为表达式,那么应该先计算哪边的表达式。又称为运算符的子表达式求职顺序。
在C++当中,有些运算符并没有严格定义结合性,例如+、-、*等运算符的结合性在不同的编译器当中不同,通常都为左结合性;而有些运算符则定义了严格的结合性,如&&、||、和逗号运算符都是左结合性,即按照从左到右的顺序计算子表达式的值。
Eg:(n<=2) && (++n>2);其中n的初始值为2 //因为&&的左结合性,该表达式的结果为1,否则结果将为0.
相关推荐: