C++非常实用,学习,总结,笔记.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C++非常实用,学习,总结,笔记.docx》由会员分享,可在线阅读,更多相关《C++非常实用,学习,总结,笔记.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结C+学习笔记一、变量,引用,宏1. extern变量的声明,只是声明。可以在别的文件定义变量:全局变量(程序变量) ,全局静态变量(文件变量) ,局部静态变量全局变量,定义在结构体外,整个程序均可用。且初值为0。全局静态变量( staticinta),只能定义在 .h 的文件中,每当 .m 文件 include时,每个 .m 文件均有独立的 a,初值也为 0局部静态变量,系统进行内存治理,执行一次/static修饰的局部变量,只执行一次, 之后被释放int countstatic int a = 0;/局部静态变量a+;return a;int mainint argc, co
2、nst char * argvcout countendl; cout countendl; cout countendl;其输出结果为123由于 static int a = 0;不会再次执行。2. 引用概念void swapint a, int b int temp = a;a = b;b = temp;这时一个交换函数。int mainint argc, const char * argvint c = 3, d = 4; swapc, d;cout ”c =”c ”,d =”endl dendl;可编辑资料 - - - 欢迎下载精品名师归纳总结结构照旧是 c = 3, d = 4; 假
3、如把 swap函数改为void swapint &a, int &b运用引用的概念, int &a = c, int &b =d;a和 b 是 c 和 d 的别名。在函数内进行操作的时候操作的直接是c 和 d。故结果为 c = 4, d = 3;3. 内存的概念c+内存分 4 大块,栈(系统治理) ,堆(程序员治理 ),全局区,二进制代码区现在:#ClassA.h#ifndefmyDemo05ClassA #definemyDemo05ClassA #include Class A Public:void print;#endif /* definedmyDemo05ClassA */ #Cl
4、assA.cpp#include ClassA.husing namespace std;void A:print/A:域肯定写上cout今日是个好日子 endl;A:A/析构函数的重写 , 释放对象时自动调用cout aaaaaaendl; A:Acout 我是构造方法 endl;#main.cpp# #include #include ClassA.husing namespace std;int mainint argc, const char * argvA* e = new A;/new A实列化对象,用指针引用 其是存在堆里面的e-print;/去引用。*e.print;delet
5、e e;/new的对象储存在堆区中的,要程序员治理内存A d;/这种方法,存在栈里面的。由系统对内存安排可编辑资料 - - - 欢迎下载精品名师归纳总结/之后调用构造方法,默认 A d.print;结果:我是构造方法 今日是个好日子今日是个好日子aaaaaa我是构造方法 今日是个好日子aaaaaa4. 内联函数与宏定义定义在.h文件中的(简洁)函数,是真正的函数,系统会区检查语法等信息。给编译器建议,当函数过于复杂,编译器会做一般函数调用。宏定义,简洁的说就是:简洁的替换。如#include #include ClassA.h using namespace std;/ 宏定义#define
6、PXDx x+xint mainint argc, const char * argvint a = PXD2; cout a endl;int b = PXD3*PXD2;/3+3*2+2只是简洁的带入过程cout b endl;结果:4115. 命名规范Class A int a_iCount;/变量 a 是整型,是用来计数的/ 类型 变量名 _作用域 _类型_功能;自我解析:int a = 1, b = 2;int* c = &a;/指针 c 指向变量 a int &d = b;/d是变量 b 的别名cout cendl&cendl&*cendl*cendl;/c输出 c 的值, &c
7、输出 c 的的址, *c 输出指针 c 所指对象 a 的值, &*c 输出指针 c 所指对象 a 的的可编辑资料 - - - 欢迎下载精品名师归纳总结址cout dendl&dendlbendl&bendl;二、类,友元,继承,多态,析构1,类:成员变量(属性) ,成员函数(方法,用const修饰的函数不能更换属性) 如 String getNmae const;静态成员函数只能操作静态成员变量,一般函数可操作静态成员变量。2. 友元,用 friend关键子修饰。 calssA.h clsaa B 。Class A friend class B。/ 友元类void print()。 可调用友方
8、的方法 classB.h class A 。class B friend void print()。 / 相当于该函数是该类中的函数,直接用友元方法3. 继承形式: class B :public (protected)(private)A公有继承:父类的属性保持不变,子类可调用父类public和 protected爱护继承:父类中的 public继承为 protected ,子类可调用父类 public和protected私有继承:父类中的 public , protected继承为 private多继承: class C :public A,public B这又关系到析构函数。当子类实例化
9、对象,必将调用父类构造方法。Teacher a;/实例化对象 a a.print;PrimaryTeacher b;/primaryTeacher继承自 Teacher b.print;student,student我是 Teacher student,student我是 PrimaryTeacherPrimaryTeacher 。 / 析构时先析构子类Teacher./再是父类Teacher./由于这是一个栈操作4. 多态可编辑资料 - - - 欢迎下载精品名师归纳总结多态:(续函数)关键字 virtual。析构函数通常声明为续函数Teacher* gs = new GoodStudent;
10、这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态classApublic:void print1coutThis is A1endl;virtual void print2coutThis is A2endl;classB:publicApublic:void print1coutThis is B1endl;/方法的覆写void print2coutThis is B2endl;intmain/ 为了在以后便于区分,我这段 main 代码叫做 main1 A* a = new B;a.print1; a.print2结果: this is A1 t
11、his is B25. 命名空间命名空间:当做一个大型的项目时,很可能大家用了相同名字的变量和方法。而命名空间可以很清晰的让你制定你需要的那个变量。#mian.app# #include using namespace std; namespace baseint fun = 3;/using namespace base;/using base:fun; int maincout fun endl;6. 初始化成员变量可编辑资料 - - - 欢迎下载精品名师归纳总结构造函数Teacher:Teacherintnumber,intage,Stringname: m_iNumnumber,m_i
12、Ageage, m_sNamname在对象建立时就会调用并初始化其子类 PrimaryTeacher有一独有变量 m_iWage由于在 PrimaryTeacher生成对象时会调用父类构造,故PrimaryTeacherintnumber,intage,Stringname,intwage: Teachernumber, age, name, m_iWagewage三、复制掌握,浅深拷贝, 操作符重载, 智能指针1. 一般的,用赋值,都是将变量的的址赋给变量,这是浅赋值。深赋值,两变量均有自己的内存,但他们值是一样的浅拷贝:不同对象,同一的址深拷贝:不同对象,不同的址2. 类,在某写操作下,执
13、行拷贝构造拷贝构造:特别的构造函数,没有的情形下会调用系统默认的可编辑资料 - - - 欢迎下载精品名师归纳总结格式, Dateconst Date& d;const防止误操作,更换变量 , 可赋写/ 拷贝构造 class DateDate& func/对象以值传递的方式从函数返回引用对象Date d2,3,5;return d;/返回一个局部对象void funcDate c /对象以值传递的方式传入函数参数cout hello.m_iYear = this-m_iYear - s.m_iYear; return *this;3. 智能指针智能指针,类似于引用计数,new一次 delete一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+非常实用 学习 总结 笔记 C+ 非常 实用 学习 总结 笔记
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内