代码改变世界

随笔分类 -  《C++远征》系列视频讲解

白话C++系列(15) -- const重出江湖

2016-04-28 21:47 by Keiven_LY, 783 阅读, 收藏,
摘要: const再现江湖 之前我们已经学习过const了,但是还是不够深入,这节课我们继续来学习const。下面先来看一个例子。 这里我们定义了一个坐标Coordinate的类,在这个坐标类当中我们定义了两个数据成员,分别表示横坐标和纵坐标(注意:这两个数据成员我们都用了const关键字来修饰),另外我们 阅读全文

白话C++系列(14)-- this指针

2016-04-28 21:37 by Keiven_LY, 1063 阅读, 收藏,
摘要: this指针 我们先来看一个下面的例子 在这个例子中,我们定义了一个Array数组的类,并且只定义了一个数据成员len,同时定义了三个成员函数:一个是Array类的有參的构造函数,将传入的_len赋值给其数据成员len,还有两个数据成员len的封装函数(getLen和setLen)。通过观察,大家是 阅读全文

白话C++系列(13)-- 对象指针、对象成员指针

2016-04-28 21:23 by Keiven_LY, 4981 阅读, 收藏,
摘要: 对象指针 所谓对象指针,顾名思义就是有一个指针,其指向一个对象,下面通过一个例子来说明这样一个问题。 在这个例子中,我们定义了一个坐标的类(Coordinate),其有两个数据成员(一个表示横坐标,一个表示纵坐标)。当我们定义了这个类之后,我们就可以去实例化它了。如果我们想在堆中去实例化这个对象呢, 阅读全文

白话C++系列(12)-- 深拷贝与浅拷贝

2016-04-24 22:15 by Keiven_LY, 1034 阅读, 收藏,
摘要: 深拷贝与浅拷贝 前面我们已经学习了拷贝构造函数,但是我们只是学习了拷贝构造函数的声明方法以及何时被自动调用,但是我们还未学习如何来实现拷贝构造函数。这是因为对象的拷贝并没有想象中那么简单,大致分为两种情况:深拷贝和浅拷贝。我们先来看下面这个例子的实现过程: 在这个例子中,我们定义了一个数组的类(Ar 阅读全文

白话C++系列(11)-- 对象数组、对象成员

2016-04-24 21:59 by Keiven_LY, 6907 阅读, 收藏,
摘要: C++远征之封装篇(下) 对象数组 前面课程我们已经学会了如何实例化一个对象,只有实例化对象后,才能通过这个对象去访问对象的数据成员和成员函数。但是在很多场合下,一个对象是远远不够用的,往往需要一组对象。比如,我们想表示一个班级的学生,并且假设这个班级有50个学生。果我们还是像以前一样,简单的使用对 阅读全文

白话C++系列(10)--对象的生离死别

2016-04-23 22:38 by Keiven_LY, 1462 阅读, 收藏,
摘要: 对象的生离死别 思考:实例化的对象是如何在内存中存储的? 思考:类中的代码又是如何存储的? 思考:数据和代码之间又有怎样的关系呢? 带着这些问题,先学习一下对象的结构 对象结构 要想为大家说清对象是如何存储的,就必须先为大家介绍一下内存中按照用途被划分的5个区域。 栈区的特点是内存由系统进行控制,无 阅读全文

白话C++系列(9)-- 类内定义与类外定义

2016-04-23 14:29 by Keiven_LY, 9988 阅读, 收藏,
摘要: 精彩的类外定义 类内定义 问题:什么是类内定义? 将成员函数的函数体写在类的内部的方式称为类内定义。比如下面的Student的类,我们可以看到,在定义成员函数的时候,包括每个成员函数用于实现的函数体,都在类的内部。 类内定义与内联函数的关系 类内定义的成员函数,编译器会将其优先编译为内联函数,但是对 阅读全文

白话C++系列(8)-- 数据封装

2016-04-11 21:11 by Keiven_LY, 1275 阅读, 收藏,
摘要: 属性封装的艺术 数据的封装 下面看一个例子,例子中定义了一个学生的类,类中含有两个数据成员,一个是姓名,一个是年龄 上面的代码给人一种相当亲切,有一种似曾相识的感觉,那是因为之前我们一直都是这么用的,而且用的也很爽。但是,这样用是有问题的,最大的问题是它违背了面向对象的指导思想。 那么面向对象的基本 阅读全文

白话C++系列(7)-- string类型及其初始化方法

2016-04-11 21:04 by Keiven_LY, 31340 阅读, 收藏,
摘要: 初始字符串类型 思考如下一个问题:我们平时在编码过程中,适用频繁而操作又比较繁琐的数据都有哪些呢? 对于基本数据类型(int、char、float、double、bool),我们虽用的比较频繁,但操作起来还是比较方便的,基本令人满意。只有char数组,也就是通常所说的字符串,我们平时用的比较频繁,但 阅读全文

白话C++系列(6)-- 类、对象及其实例化

2016-04-11 20:56 by Keiven_LY, 3082 阅读, 收藏,
摘要: C++远征之封装篇(上) 类和对象 引例 狗 假如我们养了一条狗,它有如下信息: 信息 姓名:旺财、年龄:1岁、品种:大型犬 技能 叫、跑 当我们具体的指代一个事物的时候,它就是一个对象 可是当我们养了多条狗时,为了便于管理,会建立一张表格 姓名 年龄 品种 大壮 1 大 二壮 2 小 三壮 1 大 阅读全文

白话C++系列(5)-- 内存管理

2016-04-09 21:38 by Keiven_LY, 845 阅读, 收藏,
摘要: C++内存管理 什么是内存管理? 思考:内存的本质是什么? >资源 思考:谁掌管内存资源? >操作系统 思考:我们能做什么? >申请/归还 申请/归还内存资源就是内存管理 C++中如何进行内存的申请和释放? 申请 >使用运算符new 释放 >使用运算符delete 即: 申请内存:int *p = 阅读全文

白话C++系列(4)-- 函数新特性(默认值、重载、内联)

2016-04-09 21:33 by Keiven_LY, 1192 阅读, 收藏,
摘要: C++函数新特性 函数参数默认值 有如下函数声明: void fun(int i, int j = 10, int k = 20);√ void fun(int i, int j = 10, int k) ;X 注意:有默认参数值的参数必须在参数表的最右端 在函数声明时可以带上参数默认值,而在定义时 阅读全文

白话C++系列(3)-- const关键字

2016-04-09 21:26 by Keiven_LY, 1170 阅读, 收藏,
摘要: const关键字 const与基本数据类型 首先,没有const关键字时,我们要定义一个整形变量,其在内存中的情况如下: int a = 3; //变量 变量名 存储地址 存储内容 a &a 3 当我们在变量名前加上关键字const后,它就由一个变量变成了一个常量,如下: const int a = 阅读全文

白话C++系列(2)-- 引用类型

2016-04-08 22:03 by Keiven_LY, 1705 阅读, 收藏,
摘要: C++远征之离港篇 C++引用类型 引例 小时候,院子里有一个小孩,名叫罗某某,外形上来看,头大身子小,所以院子里的其他小朋友就给罗某某起了个外号(别名)叫萝卜头。这样,生活中,罗某某就是这个小朋友的真实姓名,萝卜头就是这个小朋友的别名。 那么,什么叫引用呢????引用就是别名。 计算机中,引用就是 阅读全文

白话C++系列(1)-- 输入、输出、命名空间

2016-04-08 21:53 by Keiven_LY, 2617 阅读, 收藏,
摘要: C++远征之起航篇 起航篇算是C++入门,主要介绍了IDE环境、命名空间、输入输出流,在此通过一个例子来说明。 /* ************************************************* */ /* 知识点:bool类型、命名空间、输入输出 */ /* 题目要求: */ 阅读全文

白话C++系列教程

2016-04-08 21:45 by Keiven_LY, 10897 阅读, 收藏,
摘要: 该系列文档是#慕课网#中《C++远征》系列视频的直录,我只是将讲解老师的原话写成文字而已。 这样做的目的有两个: 一是,james_yuan老师的讲课方式我很喜欢,绘声绘色、形象生动、通熟易懂 二是,让自己在学习完这个C++课程后,能够更快的复习与回顾C++相关知识,而不至于很快就忘掉 在此,非常感 阅读全文