c++自我学习.1
深度理解,面向对象,采用模块化的设计,无二义性的思想已经渐入渐深在我的脑子中,
计算机严谨的思想,让我自身思考方式更加完善
1.类
一个可重用的软件组件,可以有多个对象,包含属性(数据成员,成员变量)和行为(成员函数)组成
类定义(接口),实现,
接口 使用函数原型定义类的头文件,函数原型类型,数据成员,编译器必须知道类的数据成员,以此来为对象留内存空间,例如包含gradebook.h头文件(这允许我们访问类gradebook)
实现 在类的外部定义成员函数的独立源代码文件,类具体功能的细节,函数前要加类名和分辨运算符::
补:类创建对象
数据类型声明变量
两者内涵是相同的
补:
头文件
" "引用自己所提供的头文件
< >引用c++标准库的头文件
2.c++分离编译模式
一个项目是由若干个源文件.cpp共同实现,每个源文件都会单独被编译成目标文件(.obj),然后再通过链接器形成一个单一的可执行文件(.exe)
3.定义和声明
变量
定义==声明
函数
声明报备类型,函数名,形参,没有函数体
定义包括声明和函数体
对比:
定义需要内存空间的分配,声明不需要
定义定义一次,声明可以多次
定义开辟内存空间,声明拓展作用范围
4.操作符:
计算机程序可以看作一串运算式,可以对各种运算类型进行运算。这种运算不仅仅是代数上的加减乘除,也可以是在计算机中存在的数据类型的改变,还可以是一种抽象的操作。比如说我们定义组装两个机械零件,那么我们也可以定义一种已知的操作“+”,使其能够表示组装零件的操作,总之,对于基本的整型、浮点数等的种种运算操作,我们都可以用操作符(Operator)来表示
补:
运算符优先级:算术>关系>逻辑>赋值
例:
a=b=c=d=1
if(a--&&--b&&c++)
{
d--
}
结束后:a=0,b=0,c=1,d=1
逻辑运算符:
内置的高级布尔运算符 !,&&,||
进行逻辑运算时,逻辑运算符左右两边连接的都是布尔类型bool,最终表达式的结果是布尔值:True或False
补:
位运算符&、|、^
! 逻辑非:取相反结果
^ 逻辑异或:相同为False,相异为True
1^1=0
0^0=0
1^0=1
0^1=1
补:
条件运算符?:
(string int_put=grade>=60 ?: "Passed" : "Failed")
补:
逗号运算符,顺序求值运算符
形式:
(表达式1,表达式2,表达式3……表达式n)
求解过程:
先求解表达式1,再求解表达式2,…。整个逗号表达式的值是就只有最后一个表达式里的值。
补:
左移操作
规则:右边空出的位用0填补,高位左移溢出则舍弃该高位。
例:
10 的二进制为 0000 1010 ,那么10左移3为就是 0101 0000,结果就是80.
右移操作
规则:左边空出的位用0或者1填补。正数用0填补,负数用1填补
例:
20 的二进制为 0001 0100 ,那么10右移3为就是 0000 0010,结果就是2。