C++ day02 自动保存的.docx
- 文档编号:29766397
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:9
- 大小:593.26KB
C++ day02 自动保存的.docx
《C++ day02 自动保存的.docx》由会员分享,可在线阅读,更多相关《C++ day02 自动保存的.docx(9页珍藏版)》请在冰豆网上搜索。
C++day02自动保存的
21、C语言指针:
指针是用来保存某种类型的变量的地址的变量,取地址&:
&变量,取得某个地址的变量:
*地址,(*地址).成员,地址->成员,向函数传递参数的时候,如果希望函数能操作某个变量里的数据,就把变量的地址传递给函数,函数里就可以根据地址找到内存中的那个变量,从而取得或者改变变量里的值。
地址运算:
p+n,p-n,p[i]==>*(p+i),*p,p-q,结果是多少个单位(元素),单位为sizeof(地址类型),比较,指针定义时建议带初始化从而避免野指针,不要通过空指针或者目标已经释放掉的指针去找变量(可能出现段错误),不要返回非静态局部变量的地址作为函数的返回值,作为函数形参的指针如果不用于改变目标变量的值就尽量加const修饰保护目标不被误伤。
XXXconst*p<==>constXXX*p;//p指向的只读的X类型的数据
XXX*constp<==>const(XXX*)p
typedefXXX*XP
XPconstp<==>constXPp;//p是只读的,必须初始化
constXXX*constp<==>XXXconst*constp
动态内存分配:
XXX*p=malloc(…);p=realloc(…);free(p);
函数指针:
intf1(char*,int);==>int(*p)(char*,int);
数组指针:
inta[8];==>int(*p)[8];
22、输出地址:
输出字符类型的地址,为了保持与C语言的兼容,系统处理成输出字符串。
如果需要输出地址应该转换成其它地址类型。
引用:
引用一个常量,应该加const。
用临时结果(运算结果或者函数的普通返回值)去初始化一个引用时,也应该对引用加const。
constintx=20;
constint&rx=x;
23、面向对象:
Obiected-OrientedProgramming
C语言是一系列函数描述程序的工作过程,称为面向过程。
C++把程序里面的数据和对数据的操作合起来看做一个实体(称为对象),编程工作就是操作这些对象相互作用来完成程序的功能。
这样的编程方式称为面向对象编程。
抽象:
每个实体都有很多的数据和行为,只提取咱们关心的数据和行为。
封装:
用抽象的结果来描述实体的类型,称为封装。
在C++中,可以用结构来实现封装,但出于跟C语言兼容,一般在C++中结构也只封装数据,用class关键字来实现真正的封装,称为类。
封装好的类和结构都只是一个类型。
定义类:
classxxx{
成员变量或者成员函数的定义
};
结构与类的区别:
结构默认就是简单打包,内容对外是透明的,可以通过结构变量访问它的任何一个成员。
类默认是保密封装,对外是不透明的,不允许通过变量直接访问它的成员,除非是故意公开的(public)。
一般公开的都是函数。
这种类或者结构类型的变量(实例)就称之为对象。
成员函数如果在外面去实现(函数体不写在类内部),那么函数名应该写成“类名:
:
函数名”。
结构也是如此。
文件结构:
一个类一般写成一个.h文件和一个.cpp文件,在.h文件中,成员函数只有声明,没有函数体,在.cpp文件中包含.h文件并且给那些成员函数的定义(包括函数体)。
graphics.h
#ifndefGRAPHICS_H//防止graphics.h被重复引用
#defineGRAPHICS_H
classBox//类结构声明
{
…
};
#endif
graphics.cpp
#include
…
#include“header.h”//引用非标准库的头文件
…
voidFunction1(…){};//全局函数声明
…
test.cpp
#include“header.h”//引用非标准库的头文件
intmain(){}
24、创建一个对象时会自动调用一个成员函数,称为构造函数。
函数名就使用类名,无返回类型。
构造函数可以重载,一般访问限制为公开。
创建对象如果不传参数,不要带空括号,否则被误认为是一个函数声明。
类似intc3();
如果一个类没有构造函数,编译器会自动为它产生一个不干事的:
空函数。
只要有构造函数了,编译器就不在为这个类产生这个无参构造函数(默认构造函数、缺省构造函数)。
可以定义一个构造函数
classPerson(){
…..
Person(){//调动构造函数终止
…
exit(0);
}
}
25、一个对象创建时如果需要做额外的事情,就可以放在构造函数里面。
创建对象的实际操作步骤:
分配内存,执行构造函数。
如果成员是对象,成员的构造函数会在整体的构造函数之前执行。
26、this:
调用成员函数时,编译器总是自动悄悄把点(或指向)它的那个对象的地址作为一个隐含参数传递;在成员函数内部,用关键字this来接收这隐含参数,类型为X*const,表示当前对象的地址。
this:
固定指向当前对象,只存在与成员函数中,对哪个对象调用这个成员函数的时候,this就指向哪个对象。
*this就代表当前对象。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ day02 自动保存的 自动 保存