![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
DSH2418C
这个作者很懒,什么都没留下…
展开
-
C++学习笔记10——类和封装
class关键字在C++中提供新的关键字class用于类定义C++中class和struct用法是完全相同的class和struct的区别在于:在使用struct定义类时, 所有成员的默认访问级别是public在使用class定义类时, 所有成员的默认访问级别是private类的封装封装的概念类的属性和行为有些可以对外公开,有些不对外公开必须在类的表示法中定义属性...原创 2018-03-06 21:05:29 · 250 阅读 · 0 评论 -
C++学习笔记14——C++中的操作符重载
操作符重载的概念C++中的重载能够扩展操作符的功能操作符的重载以函数的方式进行本质:用特殊形式的函数扩展操作符的功能通过operator关键字定义特殊的函数来**重载操作符语法:// Sign为系统中预定义的操作符Type operator Sign(const Type& p1, const Type& p2){ Type ret; ...原创 2018-04-06 17:16:54 · 262 阅读 · 0 评论 -
C++学习笔记13——二阶构造模式
工程开发中类对象的构造过程资源无关的初始化操作不可能出现异常情况的操作需要使用系统资源的操作可能出现异常情况,如:内存申请,访问文件构造函数的问题构造函数只能决定对象的初始状态,而不是对象的诞生构造函数只提供自动初始化成员变量的机会,不保证初始化逻辑一定成功执行return语句后构造函数立即结束半成品对象的概念初始化操作不能按照预期完成而得到的对象半成品对...原创 2018-04-05 20:02:11 · 373 阅读 · 0 评论 -
C++学习笔记12——类的静态成员
静态成员变量在C++中可以定义静态成员变量静态成员变量属于整个类所有可以通过类名直接访问公有静态成员变量所有对象共享类的静态成员变量可以通过对象名访问公有静态成员变量静态成员变量的特性在定义时直接通过static关键字修饰静态成员变量需要在类外单独分配空间语法规则:Type ClassName::VarName = value;静态成员变量在程序内部位于全局数据区...原创 2018-04-05 13:34:16 · 214 阅读 · 0 评论 -
C++学习笔记17——继承中的构造和析构
子类构造函数和父类构造函数子类中可以定义构造函数子类构造函数必须对继承而来的成员进行初始化直接通过初始化列表或者赋值的方法进行初始化调用父类构造函数进行初始化父类构造函数在子类中的调用方式默认调用适用于无参构造函数和使用了默认参数的构造函数显示调用通过初始化列表进行调用适用于所有父类构造函数 /* 测试代码*/#include<ios...原创 2018-04-09 10:13:04 · 258 阅读 · 0 评论 -
C++学习笔记16——继承的概念
类和类的关系组合关系 : 整体与部分的关系特点:将其他类的对象作为当前类的成员使用当前类的对象与成员对象的生命周期相同成员对象在用法上与普通对象完全一致继承关系:父子关系特点:子类拥有父类的所有属性和行为子类就是一种特殊的父类子类对象可以当作父类对象使用子类中可以添加父类没有的方法和属性 class Parent{private: in...原创 2018-04-08 11:29:40 · 235 阅读 · 0 评论 -
C++学习笔记11——对象的构造
构造函数C++中可以定义与类名相同的特殊成员函数这种特殊的成员函数叫做构造函数构造函数没有任何返回类型的声明构造函数在对象调用时自动被调用/* 测试代码*/#include <stdio.h>class Test{private: int i; int j;public: Test() // 构造函数...原创 2018-03-19 20:37:32 · 221 阅读 · 0 评论 -
C++学习笔记9——面向对象基本概念
面向对象意义将日常生活中**习惯的思唯方式引入程序设计中将需求中的概念直观的映射到解决方案中以模块为中心构建可复用的软件系统提高软件产品的可维护性和可扩展性类和对象类和对象是面向对象中的两个基本概念类:指的是一类事物, 是一个抽象的概念, 用于抽象的描述一类事物所特有的属性和行为对象:指的是属于某个类的具体实体, 拥有所属类中描述的一切属性和行为类是一种模型, 这...原创 2018-03-06 15:22:51 · 177 阅读 · 0 评论 -
C++学习笔记8——新的类型转换
强制类型转换C方式强制类型转换存在的问题过于粗暴任意类型之间都可以进行转换, 编译器很难判断其正确性难于定位在源码中无法快速定位所以使用强制类型转换的语句C++将强制类型转换分为 4 种不同的类型static_cast强制类型转换用于基本类型间的转换不能用于基本类型指针间的转换用于有继承关系类对象之间的转换和类指针之间的转换const_cast强制类型...原创 2018-03-06 13:16:29 · 176 阅读 · 0 评论 -
C++学习笔记7——C++中的新成员
C++中的动态内存分配C++中通过 new 关键字进行动态内存申请C++中的动态内存申请是基于类型进行的delete 关键字用于内存释放/* 测试代码*/#include <stdio.h>int main(){ int* p = new int; // 变量申请 *p = 5; *p = *p + 10;...原创 2018-03-06 12:09:18 · 168 阅读 · 0 评论 -
C++学习笔记6——函数重载分析
C++中的函数重载用同一个函数名定义不同的函数当函数名和不同的参数搭配时函数意义不同/* 测试代码*/#include <stdio.h>#include <string.h>int func(int x){ return x;}int func(int a, int b){ return a + b;}i...原创 2018-03-06 09:39:48 · 196 阅读 · 0 评论 -
C++学习笔记5——内联函数分析
内联函数的概念C++编译器可以将一个函数进行内联编译被C++编译器内联编译的函数叫做内联函数C++编译器直接将函数体插入函数调用的地方内联函数具有普通函数的特征(参数检查, 返回类型等)内联函数没有普通函数调用时的额外开销(压栈, 跳转, 返回)C++中推荐使用内联函数替代宏代码片段C++中使用inline关键字声明内联函数inline int func(int a, in...原创 2018-03-05 20:17:03 · 245 阅读 · 0 评论 -
C++学习笔记4——引用的本质分析
引用的概念在C++中新增加了引用的概念引用可以看作一个已定义变量的别名引用的语法: Type& name = var;/* 测试代码*/#include <stdio.h>int main(){ int a = 2; int& b = a; // b 为 a 的别名 b = 5; ...原创 2018-03-05 19:34:16 · 161 阅读 · 0 评论 -
C++学习笔记3——布尔类型和三目运算符
布尔类型的概念C++中的布尔类型C++在C语言的基本类型系统上增加了bool布尔类型是C++中的基本数据类型可以定义布尔类型的全局变量可以定义布尔类型的常量可以定义布尔类型的指针可以定义布尔类型的数组…C++中的bool可取的值只有 true 和 falsetrue代表真值, 编译器内部用 1 来表示false代表非真值, 编译器内部用 0 来表示C++编译器会将...原创 2018-03-04 21:20:53 · 477 阅读 · 0 评论 -
C++学习笔记1——C到C++的升级
C和C++的关系C++继承了所有C的特性C++在C的基础上提供了更多的语法和特性C++的设计目标是运行效率与开发效率的统一C到C++的升级1:变量C语言中的变量都必须在作用域开始的位置定义C++更强调实用性,所有的变量都可以在需要使用时在定义for(int i = 0; i < 10; i++){ for(int j = 0; j < 10;...原创 2018-03-04 10:46:47 · 246 阅读 · 0 评论 -
C++学习笔记2——C++中的const
C语言中的constconst修饰的变量是只读的, 本质还是变量const修饰的局部变量在栈上分配空间const修饰的全局变量在只读存储区分配空间const只在编译期有用, 在运行期无用注意:const修饰的变量不是真的常量, 它只是告诉编译器该变量不能出现在赋值符号的左边C++中的constC++在C的基础上对 const 进行了进化处理编译器当碰见 const ...原创 2018-03-04 15:54:00 · 252 阅读 · 0 评论 -
C++学习笔记15——智能指针分析
C++中的内存泄漏动态申请堆空间,用完后不归还C++语言中没有垃圾回收机制指针无法控制所指堆空间的生命周期 - 智能指针智能指针的概念:智能指针是一个特殊的指针智能指针生命周期结束时主动释放空间一片堆空间只能由一个指针标识智能指针的实现:重载指针特征操作符( -> 和 * )只能通过类的成员函数重载重载函数不能使用参数(只能定义一个重载函数)...原创 2018-04-06 22:06:11 · 238 阅读 · 0 评论