C++入门到精通视频文本.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C入门到精通视频文本

C++入门到精通视频文本 函数的声明与定义 声明: int add(int,int); // 在声明函数时系统不会分配内存 定义: int add(int x, int y) // 在定义的时候系统将分配内存给它 { return x+y; } 类的定义 class MyColor { public: // 在类里面声明函数 void setColor(int r); private: int rgb; }; 在类外面定义函数 void MyColor::setColor(int r) { } 声明和类函数分开要从内联函数说起…… 一般来说定义一个函数后,编译器在内存中为其创建了一个指令集,当调用这个函数时,程序就会跳转到指令处,执行完毕后跳回原来的地方执行下面的操作,如果调用了上百次的话会来回调用,这样会影响程序的执行效率。C++的解决方法是使用关键字inline声明函数。这个关键字的做用是将函数声明里面的内容拷贝到执行处(如果函数内容很多时不建议使用) 类的声明和定义一般存放在“.h”文件(头文件)中,程序执行部分一般存放“.cpp”文件(源文件) 备注:当然不用声明直接定义也是可以的,但是为了习惯和减少出错率,建议先声明再定义 理由:编译器是从上到下开始编译 ,如果第一个函数调用第二个函数,这时编译器会提示第二个函数没有找到。 变量类型(第四章) 静态变量(static)、外部变量(extern)、寄存器变量、自动存储变量 int a = 1; // 是定义变量并且初始化 int a; a = 1; // 是定义变量,给变量赋值 类型: int 整数 bool 布尔(true、false 也可以写成 1、0,但是判断时的值要一致) char 字符 wchar_t 双字节字符 – 又叫宽字符(中文、日文等的字符都是双字节存储的) wchar_t wc[] = L“日”; L表示叫编译器给两个字节的空间 整型概述(第四章) 析构函数(第六章) 析构函数和构造函数想法,析构函数用于在对象被销毁吼清除它所占用的内存空间,比如说它可以清除由构造函数创建的内存。(析构函数定义和构造函数一样,只是函数名前加个“~”波浪号,注意:析构函数不能有参数) 指针(第八章) 指针 int a = 1; int *p = a; 定义一个指针,并且把变量a的内存地址赋值给p(p存储的只是变量a的内存地址,p自己也有一个内存地址) ( 有两种作用,单目运算的时候是取地址,双目运算的时候是与操作,比如 p=a是单目运算, if(a1 a 100) 是双目运算) int a = 12; count a endl; 输出a的内存地址 count p endl; 输出p的内存地址 count p endl; 输出p的保存的内存地址(也就是保存a的内存地址) count *p endl; 输出p的保存地址处的值(也就是a的值12) 注意:指针类型必须和变量类型一致(例如:存放int类型变量的地址,那指针也必须用int类型来定义,而不能用double等类型定义) 堆和栈 栈区(stack)由编译器自动分配并释放,这个区域一般存放函数的参数值、局部变量值等 堆区(heap)由程序员分配释放,如果没有手动释放则程序结束后系统自动释放 寄存器---用来保存栈顶指针和指令指针 全局区(静态区)(static)全局变量和静态变量存放在一起,初始化的在一块,未初始化的在相邻的另一块,程序结束后系统自动释放 用指针删除堆中的空间 由于使用new创建的内存控件不会被系统自动释放,如果没有手动去释放,那么该区域的内存不能给其他数据使用,指向该区域的指针是局部变量的话,函数执行完毕后指针消失了,再也找不到该区域数据,但是该区域还未释放(直到程序结束才释放),这种情况叫做:内存泄漏。 手动清空堆的空间用 delete关键字(对指向堆的指针使用delete,如果指针指向的区域已经被释放还用delete的话就直接报错—程序奔溃) 由于该内存的区域被释放和回收后,编译器随机给该区域分配一个值,建议释放和回收后给该区域赋值0 访问堆中的成员数据 Human *p = new Human; (*p).getWeight(); 也可以用“成员指针运算符 -”来访问(推荐使用这种方法) p-getWeight(); 如果开辟了Human空间,则Human类里面的成员有开辟空间的话这样是没有意义的,因为开辟了Human已经提供了存储空间 this指针, 如果指针指p向的内存空间被释放了,再定义一个指针p1开辟一个空间,则指向的是p的那块空间,这样就导致了数据混乱,为了避免这种情况,在释放p的同时要给p赋值一个空指针 p = 0; const Hum

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档