
C++学习
junlianzi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++学习笔记第一篇
1. C++更强调语言的“实用性”,所有变量都可以在需要使用的时候再定义。 2. register关键字请求“编译器”将局部变量存储于寄存器中,C语言无法取得register变量地址,C++可以取得register变量的地址。 3. 在C语言中定义多个同名的全局变量是合法的,在C++中,不允许定义多个同名的全局变量。 4. C++编译器对const常量的处理: (1) 当碰到常量声明时在符...原创 2018-11-21 15:16:01 · 145 阅读 · 0 评论 -
C++学习笔记第九篇
81.对象在创建的时候由编译器对VPTR指针进行初始化,只有当对象的构造完全结束后VPTR的指向才能最终确定。父类对象的VPTR指向父类虚函数表,子类对象的VPTR指向子类虚函数表,构造函数中调用虚函数无法实现多态。 82.面向对象中的抽象类: (1)抽象类可用于表现现实世界中的抽象概念。 (2)抽象类是一种只能定义类型,而不能产生对象的类。 (3)抽象类只能被继承并重写相关函数。 (4...原创 2018-12-05 17:36:02 · 132 阅读 · 0 评论 -
C++学习笔记第十二篇
111.容器中存放的都必须是值而不能是引用,容器内部实施的是值拷贝工作,容器内可以存放指针作为数据元素,STL中的容器其实就是数据结构课程中学习的链表,栈,队列和哈希表等结构。 112.线性表的典型操作: (1)size:获取当前容器中的元素数目。 (2)insert:在当前元素前插入新元素。 (3)erase:删除当前元素。 (4)empty:判断当前容器是否为空。 (5)front...原创 2018-12-08 11:58:41 · 137 阅读 · 0 评论 -
C++学习笔记第十一篇
101.类模板可以被局部特化,可以指定类模板的特定实现,并要求某些类型参数仍然必须由模板的用户指定。 102.为什么需要特化,而不重新定义新类: (1)特化和重新定义新类看上去没有本质区别,但是如果定义新类,那么将变成一个类模板和一个新类,使用的时候需要考虑究竟是用类模板还是用新类。 (2)特化可以以统一的方式使用类模板和特化类,编译器自动优先选择特化类。 103.非类型模板参数的限制...原创 2018-12-08 11:57:01 · 120 阅读 · 0 评论 -
C++学习笔记第七篇
61.(1)malloc和free是库函数,以字节为单位申请堆内存。 (2)new和delete是关键字,以类型为单位申请堆内存。 (3)malloc和free单纯的对内存进行申请与释放。 (4)对于基本类型new关键字会对内存进行初始化。 (5)对于类型new和delete还负责构造函数和析构函数的调用。 62."剥夺"编译器对构造函数的调用尝试,C++提供了explicit关键...原创 2018-11-28 20:06:13 · 130 阅读 · 0 评论 -
C++学习笔记第六篇
51.静态成员变量的定义: (1)在定义时直接通过static关键字修饰。 (2)静态成员不依赖于任何对象,需要在类外单独分配空间。 (3)语法规则:Type ClassName :: VarName。 静态成员函数的定义: (1)在定义时直接通过static关键字修饰。 (2)其余部分与普通成员函数定义相同。 52.从命名空间角度: (1)类的静态成员只是类这个命名空间中的...原创 2018-11-26 21:05:19 · 107 阅读 · 0 评论 -
C++学习笔记第八篇
71.在子类对象构造的时候需要调用父类构造函数对其继承得来的成员进行初始化。在子类对象析构的时候需要调用父类析构函数对其继承得来的成员进行清理。 72.子类对象在创建的时候会先调用父类的构造函数;父类构造函数执行结束后,执行子类的构造函数;当父类的构造函数有参数后,需要在子类的初始化列表中显示调用;析构函数调用的先后顺序与构造函数相反。 73.当子类成员变量与父类成员变量同名时: (1)子类...原创 2018-11-29 21:42:50 · 137 阅读 · 0 评论 -
C++学习笔记第五篇
41.C++中的构造函数: (1)C++中的类可以定义与类名相同的特殊成员函数。 (2)这种与类名相同的成员函数叫做构造函数。 (3)构造函数在定义时可以有参数,但是没有任何返回类型的声明。 (4)一般情况下C++编译器会自动调用构造函数,一些情况下则需要手动调用构造函数。 42.类的成员函数和普通函数一样可以进行重载,并遵循相同的重载规则。 43.当类中没有定义任何一个构造函数时,C...原创 2018-11-25 20:12:41 · 105 阅读 · 0 评论 -
C++学习笔记第四篇
31.符号表的概念: (1)符号表是编译器在编译过程中产生的关于源程序中语法符号的数据结构。 (2)符号表是编译器自用的内部数据结构。 (3)符号表不会进入最终产生的可执行程序中。 32.只有用字面量初始化的const常量才会进入符号表: (1)对const常量引用会导致编译器为其分配空间。 (2)虽然const常量被分配了空间,但是这个空间中的值不会被使用。 (3)使用其他变量初始...原创 2018-11-24 16:42:38 · 157 阅读 · 0 评论 -
C++学习笔记第三篇
21.C++中的动态内存分配: (1)C++中通过new关键字进行动态内存申请。 (2)C++中的动态内存申请是基于类型进行的。 (3)delete关键字用于内存释放。 eg: 变量申请 Type* pointer=new Type; //…… delete pointer; 数组申请 Type* pointer=new Type[N]; //…… delete[...原创 2018-11-22 22:58:20 · 126 阅读 · 0 评论 -
C++学习笔记第二篇
11. C++可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替。 12. 在C++中可以为函数提供占位参数: (1)占位参数只有参数类型声明,而没有参数名声明。 (2)一般情况下,在函数体内部无法使用占位参数。 (3)占位参数一般用于程序扩展和对C代码兼容。 13. 函数重载: (1)用同一个函数名定义不同的函数。 (2)用函数名和不同...原创 2018-11-22 20:16:50 · 108 阅读 · 0 评论 -
C++学习笔记第十篇
91.C++中泛型编程的函数模板: (1)提供一种特殊的函数,可用不同类型进行调用。 (2)看起来和普通函数很相似,区别是类型可被参数化。 template <typename T> void Swap (T&a , T&b) { T t = a; a = b; b = t; } 92.函数模板的语法规则; (1)tem...原创 2018-12-07 12:42:35 · 125 阅读 · 0 评论