- 博客(101)
- 收藏
- 关注
原创 C++面向对象(5)
构造函数的使用以下代码中的输出语句为0吗?为什么?[cpp] view plain copy#include using namespace std; struct CLS { int m_i; CLS(int i):m_i(i){ } CLS() {
2017-08-23 22:25:53
239
原创 C++面向对象(4)
一、对静态数据成员的正确描述下列对静态数据成员的描述中,正确的是A、静态数据成员可以在类体中进行初始化B、静态数据成员不可以被类的对象调用C、静态数据成员不能收private控制符的作用D、静态数据成员可以直接用类名调用解析:A错误。静态数据成员必须在类外面初始化,以示与普通数据成员的区别B错误CD正确二、ma
2017-08-23 22:23:40
215
原创 C++面向对象(三)
一、与全局对象相比,使用静态数据成员有什么优势优势:(1)静态数据成员没有进入程序的全局命名空间,因此不存在程序中其他全局命名冲突的可能性。(2)使用静态数据成员可以隐藏信息。因为静态数据成员可以是private成员,而全局对象不能二、有哪几种情况只能用intialization list,而不能用assignment 无论是在构造函数初始化列表中初始化成员,
2017-08-23 22:22:23
280
原创 C++面向对象(2)
一、看代码写结果——c++类成员的访问[cpp] view plain copy"font-size:18px;">#include using namespace std; #define public private (1) class Animal { public:"w
2017-08-23 22:20:54
196
原创 C++面向对象(1)
一、描述面向对象技术的基本概念面向对象是指按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法,包括类、对象、消息以及类的特性等方面的内容。类(class):具有相似的内部状态和运动规律的实体集合。类来自于人们认识自然、认识社会的过程。在这一过程中,人们主要使用两种方法:有特殊到一般的归纳法和一般到特殊的演绎法。在归纳过程中,从一个一
2017-08-23 22:18:56
249
原创 c/c++整理析构函数
c++中虚析构函数的作用是什么? 析构函数是为了在对象不被使用后释放它的资源,虚函数是为了实现多态。那么,把析构函数声明为virtual有什么作用呢? 请看下面代码:[cpp] view plain copy"font-size:18px;">#include using namespace std; cl
2017-08-23 22:02:06
225
原创 C++--容器
容器1.容器的定义生活中:容器是用来存放物品,水桶是水的容器,油桶是油的容器。C++中:存放不同的数据结构类型指定的容器。STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便我们大家使用。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stack)。 2
2017-08-18 22:36:47
343
原创 C++--算法
异常1.C++异常处理入门(try和catch)程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:1) 语法错误在编译和链接阶段就能发现,只有 100%符合语法规则的代码才能生成可执行程序。2) 逻辑错误是说我们编写的代码思路有问题,不能够达到最终的目标,这种错误可以通过调试来解决。3) 运行时错误是指程序在运行期间发生的错误,例如除数为 0、内存分配失
2017-08-18 22:35:39
164
原创 c++模板
1.模版是实现代码的一种工具,可以实现参数类型化,就是把参数定义为类型,从而实现代码的可重用性。 模版分为类模版和函数模版。模版就是把功能相似,仅数据类型不同的函数和类设计为通用的函数模版和类模版,提供给用户。模版是泛型编程基础。所谓泛型编程就是独立于任何特定类型的方式编写代码。简单说:类是对象的抽象,模版是类的抽象,用模版定义具体类。 函数模版的语法:Template
2017-08-17 23:24:41
180
原创 c/c++整理--类String的构造函数、析构函数和赋值函数
类string的原型[cpp] view plain copy"font-size:18px;">class string { public: string(const char* str = NULL); //普通构造函数 string(const string &other);
2017-08-17 23:23:50
225
原创 c++--多态性和虚函数
//虚继承解决了命名冲突的问题,只保留了一份基类成员,最终派生类要调用虚基类的构造函数,并且虚基类是最先调用的,其他构造函数出现顺序和出现的顺序一样(一般派生类都要调用基类的构造函数) 1.多态的概念和用途 //虚函数实现多态 通过基类指针只能访问派生类的成员变量,但是不能访问派生类的成员函数。为了消除这种尴尬,让基类指针能够访问派生类的成员函数,C++增加了虚函
2017-08-16 23:25:35
255
原创 C++--运算符的重载
1.运算符重载的概念所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。运算符重载的格式为:返回值类型 operator运算符名称 (形参表列) { //TODO:}ope
2017-08-16 23:22:02
322
原创 c/c++整理--复制构造函数和深复制及浅复制
一、复制构造函数是什么?什么是深复制和浅复制?什么是复制构造函数 先来说明什么是复制构造函数,以及它被调用的场合。 复制构造函数是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构件及初始化。 如果在类中没有显示地声明一个复制构造函数,那么编译器会私下里制定一个函数来进行对象之间的位复制。这个隐含的复制构造函数简单地关联了所有的类成员。
2017-08-16 23:19:04
218
原创 C++面向对象
一、了解c++类各成员函数的关系写出下面代码的输出结果[cpp] view plain copy#include using namespace std; class A { int num; public: A() { cout
2017-08-16 23:14:45
192
原创 C++ --继承和派生
1.面向对象程序设计有3个主要特点:封装、继承和多态性。我们已经讲解了类和对象,了解了面向对象程序设计的个重要特征一数据封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础。 要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特 征——继承性和多态性。2.继承的概念继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的
2017-08-13 23:15:10
607
原创 C++--多态
一.多态性1.多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。 2.C++多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为遮蔽或者称为重写。(这里我觉得要补充,重写的话可以有两种,直接重写成员函数和重写虚函数,只有重写了虚函数的才能
2017-08-12 22:50:57
188
原创 静态成员和临时对象
一、看代码写结果——c++静态成员和临时对象[cpp] view plain copy"font-size:18px;">#include using namespace std; class human { public: human() { hum
2017-08-11 23:27:37
285
原创 函数重载
一、为什么C语言不支持函数重载而c++能支持什么是函数重载?为什么C语言不支持函数重载,而c++能支持函数重载?解析: 函数重载是用来描述同名函数具有相同或者相似的功能,但数据类型或者是参数不同的函数管理操作。在c语言里需要写两个不同名称的函数来进行区分。[cpp] view plain copy"font-size:18p
2017-08-11 23:25:09
236
原创 重载运算符
一、编写MyString类对于下面的类MyString,要求重载一些运算符后可以计算表达式a=b+c。其中,a、b、c都是类MyString的对象。请重载相应的运算符并编写程序测试。[cpp] view plain copyclass MyString { char* str; public:
2017-08-11 23:23:40
627
原创 C/C++ -- C++继承
一、c++继承关系理解请考虑下面标记为A~J的语句在编译时可能出现的情况,如果能够成功编译,请记为“RIGHT”,否则即为“ERROR”[cpp] view plain copy#include using namespace std; class Parent { private:
2017-08-10 23:46:24
307
原创 C/C++--私有继承
一、私有继承有什么作用[cpp] view plain copy"font-size:18px;">#include using namespace std; class Person { public: void eat() { cout"Person eat"};
2017-08-10 23:44:50
277
原创 C/C++--虚函数
一、虚函数是这么实现的解析: 简单的说,虚函数是通过虚函数表实现的,那么什么是虚函数表呢? 事实上,如果一个类中含有虚函数表,则系统会为这个类分配一个指针成员指向一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实际上就是一个函数指针的数组。为了说明虚函数表,请看程序:[cpp] view plain copy
2017-08-10 23:42:20
287
原创 C++向上转型
在 C/C++ 中经常会发生数据类型的转换,例如将int 类型的数据赋值给float 类型的变量时,编译器会先把int 类型的数据转换为float 类型再赋值;反过来,float类型的数据在经过类型转换后也可以赋值给 int类型的变量。 数据类型转换的前提是,编译器知道如何对数据进行取舍。例如:int a = 10.9;printf("%d\n", a);
2017-08-09 22:09:40
351
转载 QT帮助文档使用说明
学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法。我们使用 Qt 帮助文档,主要分为这么几步:1)类使用的相关介绍2)查看所用部件(类)的相应成员函数(功能,参数,返回值)3)查看部件的信号4)查看部件的事件(所对应的虚函
2017-08-09 22:07:36
3452
原创 C++之继承与派生、多继承、C++向上转型
1.参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。 对于像 char、bool、int、float等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数组、结构体、对象是一系列数据的集合,数据的数量没有限制,可能很少,也可能成千上万,对它们进行频繁的内存拷贝可能会消耗很多时间,拖慢程序的执行效
2017-08-08 23:40:34
1168
转载 HTTP协议及过程描述
HTTP 协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。 这个协议已经成为浏览器和Web站点之间的标准。 当我上网的时候底层是如何进行交互的? 当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张
2017-08-07 23:53:07
278
转载 TCP协议三次握手过程分析
TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RS
2017-08-07 23:51:35
298
转载 extern 'c'
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有
2017-08-07 23:48:34
163
原创 const和static在c和c++中的不同之处
const在c语言中: 作用:被修饰的内容不能被修改。 使用场合:修饰变量,函数参数,返回值等。 特点: 是运行时const,因此不能取代#define用于成为数组长度等需要编译时常量的情况。同时因为是运行时const,可以只定义而不初始化,而在运行时初始化。如 const int iConst;。 另外,在c中,const变量默认是外部链接,因此在不同的编译单元
2017-08-06 23:47:55
187
原创 数据结构之二叉树(数组)
二叉树的定义 二叉树(binary tree)由结点的有限集合构成,这个有限集合或者为空集(empty),或者为由一个根结点(root)及两棵互不相交、分别称作这个根的左子树(left subtree)和右子树(right subtree)的二叉树组成的集合。二叉树的五种基本形态二叉树相关术语p二叉树是由唯一的起始结点引出的结点集合
2017-08-06 23:43:18
328
1
原创 数据结构之二叉树(链表)
链表实现二叉树的原理其实和数组实现的原理大同小异,但是因为是链表的缘故,所以操作的灵活性要比数组更加好,难度也比数组更高。链表实现二叉树,多了一个很关键的东西,那就是遍历的方法:前序遍历、中序遍历和后序遍历。课程要求:完成树的基本操作 1、树的创建和销毁 2、树中结点的搜索 3、树中结点的添加和删除 4、树中结点的遍历 Tree();
2017-08-06 23:41:36
290
转载 函数指针和指针函数
函数指针和指针函数经常是很多初学者感到疑惑的地方,其实这两个是完全不同的概念。指针函数 指针函数就是返回值为指针类型的函数。函数指针 指针函数的概念其实挺简单的,关键是函数指针,这个概念之前一直是我头疼的地方,每次看函数指针都是一知半解。看函数指针的时候,出现的最多的是typedef和函数指针一起出现:[plain] view pla
2017-08-05 23:03:42
194
原创 写程序判定大小端及利用位运算进行大小端转化
大小端问题Short a= 15; //在内存中是一个字节一个字节的存储高字节 0000 0000低字节 0000 111115在内存中的存储0000000000001111
2017-08-05 22:55:41
638
翻译 C++之类和对象(二)
构造函数和析构函数1.构造函数在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。 在 Student类中定义了一个构造函数Student(char *, int, float),它的作用是给三个private 属性的成员变量赋值。要想调用
2017-08-04 23:18:37
588
翻译 C++ 复习篇之 类和对象(一)
1.类和对象类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。与结构体一样,类只是一种复杂数据类型的声明,不占用内存空间。而对象是类这种数据类型的一个变量,或者说是通过类这种数据类型创建出来的一份实实在在的数据,所以占用内存空间。有些教程将类的成员变量称为
2017-08-04 23:16:40
238
转载 C++封装、继承、多态
面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!封装
2017-08-03 23:37:26
214
原创 僵尸、孤儿、守护进程
其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给大家分别介绍一下这三种特殊的进程! 1.孤儿进程 如果父进程先退出,子进程还没退出那么子进程将被 托孤给init进程,这是子进程的父进程就是init进程(1号进程).其实还是很好理
2017-08-03 23:33:51
177
翻译 Linux--sqlite编程
1.数据库与表 SQLite将每个数据库都保存成一个文件。 数据库中的数据被组织成表的形式。 表由若干拥有相同字段的记录组成。 表可以为空,即拥有0条记录。 字段指的是记录中的数据域,它有不同的类型,可以是一个数值,也可以是字符串。 每个表中可以指定一个或多个字段为主键,表中所有记录的主键的值都不能重复。这种不重复是在插入记录时控制的,即如果向一个表中插入记录时,这个表中已
2017-08-02 23:24:37
277
原创 电子相册--简单版
1.在GPIO 、UART、中断、定时器、LCD、ADC、TICK时钟滴答中断这些知识的基础上开始写电子相册这个项目。2.电子相册主要实现了LED灯的闪烁,按键切换图片,实现图片的自动播放,图片上翻、下翻、按键返回主界面、上位机控制arm (实现开启相册、) 具体实现1.先写了主界面,主界面上用到了将字符串、汉字、图片、时间分别显示在主界面上,分别调用了LCD的各自显示函数,汉字利
2017-08-02 23:21:04
1915
翻译 Linux-网编程络
1.TCP/IP理论协议1.1协议栈Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现;1.2协议介绍对于网络理论介绍一般采用OSI模型,但是Linux中网络栈的介绍一般分为四层的Internet模型 第七层:应用层 数据用户接口,提供用户程序“接口”。 第六层:表示层 数据 数据的表
2017-08-01 21:26:49
265
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人