C/C++
晴天_QQ
嵌入式软件开发工程师
展开
-
namespace命名空间
C++命名空间基本常识:所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。一 :<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确...原创 2018-03-29 19:29:05 · 146 阅读 · 0 评论 -
单向链表
链表是一种物理存储单元上非连续的存储结构,由一系类的节点(链表中的每一个元素称为节点)组成,节点可以在运行时动态生成,节点与节点之间通过指针连接。每一个节点包含两部分,一部分是存储数据元素的数据域,另一部分是存储下一个节点地址的指针域。使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增...原创 2018-04-06 09:11:01 · 211 阅读 · 0 评论 -
C++异常处理机制
前言 1.异常是一种程序控制机制,与函数机制独立和互补。 函数是一种以栈结构展开的上下函数衔接的程序控制系统,异常是另一种控制结构,它依附于栈结构,却可以同时设置多个异常类型作为网捕条件,从而以类型匹配在栈机制中跳跃回馈。2.异常设计目的: 栈机制是一种高度节律性控制机制,面向对象编程却要求对象之间有方向、有目的的控制传动,从一开始,异常就是冲着改变程序控制结构,以适应面向对象程序更有效...原创 2018-04-05 17:38:49 · 5265 阅读 · 0 评论 -
C++的类型转换
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a;C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 static_cast 静态类型转换。如int转换成char reinterpreter_cast 重新解释类型 dynamic_cast 命名上理解是动态类型转换。如子类和父类之间的多态类型转换。 cons...原创 2018-04-05 15:34:25 · 109 阅读 · 0 评论 -
C++函数模板
C++为我们提供了函数模板机制。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。 为什么要有函数模板 下面,我们就通过一个例子来说明为什么需要...原创 2018-04-04 21:53:35 · 136 阅读 · 0 评论 -
C++函数指针
typedef的语法描述在现实生活中,信息的概念可能是长度,数量和面积等。在C语言中,信息被抽象为int、float和 double等基本数据类型。从基本数据类型名称上,不能够看出其所代表的物理属性,并且int、float和double为系统关键字,不可以修改。为 了解决用户自定义数据类型名称的需求,C语言中引入类型重定义语句typedef,可以为数据类型定义新的类型名称,从而丰富数据类型所包含的...原创 2018-04-03 21:57:29 · 143 阅读 · 0 评论 -
C++中的引用
1.引用的基础知识:变量名回顾: 1.变量名实质上是一段连续存储空间的别名,是一个标号(门牌号); 2.程序中通过变量来申请并命名内存空间; 3.通过变量的名字可以使用存储空间;在C++中新增加了引用的概念:引用可以看作一个已定义变量的别名,引用的语法:Type& name = var;实例:#include <iostream>#include <stdio.h&g...原创 2018-04-03 21:35:52 · 148 阅读 · 0 评论 -
C++中const和#define的对比
const常量分配内存的时机:编译器编译期间。第一种情况,当没有对const修饰的常量进行取地址或其它文件也没使用此常量时,不会对const常量分配内存。#include <iostream>#include <stdio.h>int main(){ int a; const int b=90; int c; printf("a: ...原创 2018-04-02 21:50:31 · 467 阅读 · 0 评论 -
C++的const简单说明
const的基础知识:int main() { const int a; //代表一个常整形数; int const b; //代表一个常整形数; const int *c; //是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改; int * const d; //常指针(指针变量不能被修改,但...原创 2018-04-02 21:30:43 · 138 阅读 · 0 评论 -
C++重载-重写-重定义
本文转自:点击打开链接1、重载首先说重载,它最简单,C++中的重载和java中的差不多,都是在一个类中,方法名相同而参数不同的几个方法,但是不能靠返回类型来判断。例如:class AA{public: void print() { cout << "父类" << endl; } void print(int x ) ...转载 2018-04-02 20:14:07 · 324 阅读 · 0 评论 -
C++深入理解虚函数
本文转自:点击打开链接为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装多态继承普通虚函数虚析构函数纯虚函数抽象类接口类隐藏 vs 覆盖隐藏与覆盖之间的关系早绑定和晚绑定虚函数表什么是多态?相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。静态多态 vs 动态多态[-:>静态多态也叫做早绑定class Rect //矩形类{publ...转载 2018-04-02 09:59:49 · 157 阅读 · 0 评论 -
C++纯虚函数和抽象类
纯虚函数: 形式:virtual 类型 函数名(参数列表) = 0;一个具有纯虚函数的基类被称为抽象类。抽象类不能用于实例化;但是可以声明抽象类的指针。多继承的二义性。#include <iostream>using namespace std;class B{public: int b;protected:private:};class B1:pub...原创 2018-04-02 07:10:18 · 189 阅读 · 0 评论 -
内联函数
内联函数是C++为提高程序运行速度所有的一项改进。常规函数和内联函数之间的主要区别不在于编写方式,而在于编译器如果将它们组合到程序中。要了解内联函数和常规函数之间的区别,必须深入到程序的内部。编译过程的最终产品时可执行程序,由一组机器语言指令组成。运行程序时,操作系统将这些指令载入到计算机内存中,因此每条指令都有特定的内存地址。计算机随后将逐步执行这些指令。有时,将跳过一些指令,向前或向后跳到特定...原创 2018-03-25 15:48:43 · 277 阅读 · 0 评论 -
C++继承和派生
面向对象程序设计有4个主要特点:抽象、封装、继承和多态性。我们已经讲解了类和对象,了解了面向对象程序设计的两个重要特征一数据抽象与封装,已经能够设计出基于对象的程序,这是面向对象程序设计的基础。要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特 征——继承性和多态性。本章主要介绍有关继承的知识,多态性将在后续章节中讲解。继承性是面向对象程序设计最重要的特征,可以说,如果没有掌握...原创 2018-03-29 20:54:37 · 6634 阅读 · 0 评论 -
register关键字介绍
1、register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。例如下面的内存块拷贝代码,/* Procedure for the assignment of structures, *//* if the C compiler doesn't support this feature */#ifdef NOSTRUCTASSIGNme...原创 2018-03-29 19:42:29 · 2836 阅读 · 0 评论 -
C语言面试题精选
1、请填写bool、float和指针变量与"零值"比较的if语句。提示:这里"零值"可以是0,0.0,FALSE或者"空指针"。例如int变量n与"零值"比较的if语句为:if(n==0) if(n!=0) 以此类推。(1)请写出bool flag与"零值"比较的if语句: 答案:if(flag)或if(!flag)(2)请写出float x变量与"零值"比较的if语句: 答案:const原创 2018-04-06 17:36:07 · 540 阅读 · 0 评论