面向对象的程序设计学习总结(一)

第四章 复合类型

4.1c++新增内容
constexper对象
1.如果认定某个对象为常量表达式,可以把它声明雯constexpr类型
2.声明为constexpr的数据对象一定是一个常量,必须用常量表达式初始化
例:constexpr int size=20;//20为常量表达式
auto类型说明符
1.用auto声明变量的类型,由编译器去自动分析表达式的类型,推断出变量的实际类型。
2.定义auto变量必须有初始值
特例:auto a;//错误,没有初始值
auto r=1,pi=3.14//错误,两变量的类型不一致
decltype类型指示符
1.作用是选择并返回操作数的类型
2.编译器会分析表达式的类型,并不真正的计算表达式的值
range-for语句
从头至尾对容器或者序列的所有元素逐个执行某种操作
例:for(declaration:expression)
statement;
expression是要处理的序列
declaration定义一个变量,表示序列中的每个元素
statement是一条语句或者语句块,表示对元素的处理代码

★指针和引用
特点:1.指针持有一个对象的地址,成为指针“指向”该对象
2.通过指针可以简介操纵它指向的对象
用法:1.每个指针都有相关的类型,每次运用指针是要定义指出
2.要获取对象的地址,要使用取地址符“&”
3.指针解引用运算符“*”,如果指针指向一个对象,则可以通过指针间接访问该对 象使用” * ”。
指针的值:指针不能保存非地址值,也不能被赋值或初始化为不同类型的地址值
空指针:指针值为时是一个空指针,即不指向任何对象的指针
可用:0
nullptr
预处理常量NULL
注意事项:定义指针时,应该对指针进行初始化
自增、自减运算适用于指向数组元素的指针
★引用(左值引用)
1.类型:通过左值引可以间接的操纵对象
在程序中,一弄主要用作函数的参数
2.定义和初始化:引用由类型标识符和一个取地址符(&)来定义
type&refVariable=leftValue
引用必须被初始化,初始值是一个有内存的对象
3.引用关系:引用一旦初始化,就不能再只想其他的对象,对左值引用的所有操作都会被应用在它所指向的对象上
例如:int x=100,y=20;
int&r=x;//r为x的引用
r=x; //r不会变成y的引用,而是x=y;
★指针和左值引用的区别
1.有空指针,指针可以不指向任何对象,其值为0,表示空指针
2.没有空引用,引用必须指向一个对象,而且一直指向该对象,不催在空引用,如果引用的值为0,表示它指向的单元值为0;
★CV限定词
1.const限定词
关键字const限定对象是不可改变的
2.volatile限定词
关键字volatile限定的对象不能被编译器例行优化

第五章 函数基础*

一.
1.函数定义
返回类型 函数名(参数列表){函数体}
例:一个求阶乘的函数定义
//算法:n!=12…*(n-1)*n
//函数名fact ,返回类型int,一个Int类型的形参n
int fact(int n)
{ //函数体开始
int ret = 1;
while( n>1 ) //求阶乘
ret *=n–;
return ret;
} //函数体结束

2.返回类型
函数必须制定一个返回类型
如果函数不返回任何结果,将其返回类型声明为void
3.函数调用
调用形式:函数名(实参列表);
例如:
int main()
{
int val = fact(5);
cout <<“5!=”<<val;
}

函数的返回
遇到retuen语句时,结束函数的执行,return 语句的作用:
一是返回return语句中的值
二是将控制权从被调用函数转移会主调函数上来
5.函数声明
函数在使用前必须声明
一个函数可以在程序中多次声明
函数定义也可以被用作声明,但是函数在程序中只能被定义一次

★参数传递方式
1.传引用,按引用传递参数
2.按值传递(把实参值复制到形参的储存区中,即用实参值初始化形参
二.
1.数组参数
当数组作为参数时,将传递数组的第一个元素的地址
2.返回类型和return语句
return 语句结束当前正在执行的函数,将控制权返回给函数的调用者
return语句的两种形式:
①return;(用在返回类型为void的函数中,不是必需的)
②retuen 表达式;
三.尾置返回类型语法
语法形式:auto 函数名 (形参列表)-> 返回类型;
这种语法形式对于返回类型比较复杂的函数最为有效

第六章 类和对象

在C++中扩展了struct的概念,使之可以包含函数作为成员
结构体内的函数被称为成员函数,结构体中的数据则被称为数据成员
★扩展的结构体被称为类,结构体类型的变量被称为对象
访问限定符:
1.public成员在程序的任何函数或者类中都可以被访问
2.private成员只能由类自己的成员函数或友元访问(需要隐藏信息时作此声明
3.protected成员可以在派生类中访问
访问权限介于public和private之间主要用于继承中
发送消息就是调用成员函数
例如s.print()就是向对象s发送一个print()消息
对象在内存中的布局是依赖于特定的编译器实现的
★每个对象都是唯一可区分的,每个对象都有唯一的储存地址,无数据成员的对象的大小至少是1。
this指针
每个成员函数都有一个隐含的参数,指向接受消息的对象,称为this指针
X类的this指针的类型是X*(不能改变this指针的值,也不能取this指针的地址)
用途:
1.区分与数据成员同名的变量
2.返回当前对象
3.取得当前对象地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值