C++
文章平均质量分 83
ttyue_123
这个作者很懒,什么都没留下…
展开
-
类和对象—日期类
C++是基于面向过程与面向对象的语言,类和对象是其中比较重要的部分,也是较为难理解的部分,这一部分需要大量的代码练习。下面为类和对象—日期类。主要功能相当于一个日期计算器,可以实现日期的推后、提前、日期差等功能。#define _CRT_SECURE_NO_WARNINGS 1//日期类 #include #include using namespace std; class Dat原创 2016-08-09 21:42:05 · 368 阅读 · 0 评论 -
C++‘异常’处理机制
在C++的发展过程中,为了实际的需要,引入了异常处理机制。程序中常见的错误:语法错误和运行错误,语法错误一般都是在编译时候发现的,编译器基本上都会报出错误的具体位置,因此这类错误一般都是比较好修改,运行错误一般不容易进行调试,比如说,程序崩溃(一般是由于栈溢出),运行结果错误(一般是算法的逻辑结构有问题)、程序非正常终止等现象。C++中引入异常处理(对运行时出现的差错进行处理),能够极大地提高程序原创 2016-08-09 21:43:34 · 337 阅读 · 0 评论 -
面试题—宏、函数、宏函数、inline函数的区别与联系
--宏和函数: 。宏其实主要是进行字符串的替换(只是进行字符串的替换,不涉及类型参数),而函数是通过参数的传递,参数是有数据类型的。 。编译器在预处理阶段就会进行宏的替换,不会进行参数的检查,而函数调用是将值传递给形参(值传递、引用传递、指针传递),在编译阶段之后,执行函数是会对参数进行检查的。解释:例如:#define MAX 1000 这个宏在程序的预处原创 2016-08-09 21:43:21 · 828 阅读 · 0 评论 -
大数运算(小项目)
大数运算我们都知道变量都有一个数据类型,每个数据类型都有自己所表示的范围,若当数据超过这个类型所表示的范围,就会出现错误,我们称这种现象叫做“溢出”。当然这样就要求每个变量的地址中所存储的数据不能够超过数据类型所表示的范围。整形int的表示范围是-128~127,数据类型表示范围最大的就属long long型,表示范围为:0x7FFFFFFFFFFFFFFF~0x8000000000000000。原创 2016-08-09 21:43:06 · 301 阅读 · 0 评论 -
菱形继承与菱形虚拟继承
“菱形继承与菱形虚拟继承” “继承”是c++面向对象语言的特点之一,对于一个类,我们如果想对这个类的功能进行扩充,这就可以通过"继承"的方式重新增添或删除这个类中的某些功能。C++语言支持单继承和多继承,如果不大清楚单继承和多继承的知识,不妨先看一下我以前的博客。正是因为c++支持这两种继承方式,所以才会出现菱形继承的方式。菱形继承顾名思义就是将单继承和多继承进行结合,形成原创 2016-08-09 21:42:52 · 596 阅读 · 0 评论 -
智能指针(模拟实现AutoPtr、ScopedPtr、SharedPtr)
模拟实现AutoPtr、ScopedPtr、SharedPtr 智能指针实际上就是能够智能化的管理动态开辟空间的内存释放问题,C++中引入智能指针,很大一方面是当我们在动态开辟空间时,由于一些疏忽,或者说是对于一些代码,执行的顺序不是我们预期能够想到的,导致一些内存泄露的问题,使得程序健壮性不够,可维护性降低。 智能指针的基本特点: 1)智能指针原创 2016-08-09 21:42:43 · 471 阅读 · 0 评论 -
模板(双向链表与队列)
”双向链表与队列“ “双向链表”是包含两个指针域,一个数据域,既有指向前驱的指针,还有指向后继的指针,同时可以从两个方向对链表进行遍历,访问各个节点。“双向链表”较”单链表“在插入和删除节点方面更为简单,但是所占的空间比“单链表”大。“队列”的实现之所以选择使用双向链表,是因为队列的特点是“先进先出”,如若使用顺序表则很大程度上的浪费空间。在这样的情境下,链表较顺序表更为合适。原创 2016-08-09 21:42:40 · 311 阅读 · 0 评论 -
模板(顺序表与栈)
”顺序表与栈“ 顺序表相对于我们来说已经不算是陌生的,顺序表有自己独有的特点,需要有一块独有的空间,访问中间的数据也较为简单,插入和删除数据就相对较难。针对顺序表的特点,我们不难想到一个数据结构“栈”,栈的特点与顺序表相对来说很接近,栈的主要特点是”先进后出“,即就是后进入栈的数据必须先出才能够访问到先前进入的数据,用顺序表来实现“栈”的一些基本功能更加合适。 这里首原创 2016-08-09 21:42:37 · 220 阅读 · 0 评论 -
单继承、多继承--问题解析
public、protected、private不仅是类中的访问限制符,在c++中“继承”中,它们还表示继承关系,public表示公有继承,protected表示受保护的,private表示私有的,如下图:650) this.width=650;" title="无标题.png" src="http://s1.51cto.com/wyfs02/M02/7D/42/wKiom1bjzbLSO-lgA原创 2016-08-09 21:42:32 · 242 阅读 · 0 评论 -
双向链表(c++实现)
双向链表与单链表有许多的相似之处,但是也有不同之处。 双向链表与单链表主要的不同在于:双向链表可以从两个方向进行遍历,但是单链表只能从头节点遍历到尾节点,不能从尾节点遍历到头节点,对于链表中一些插入和删除等操作,双向链表较单链表更为简单些。所以,双向链表有其存在的特殊意义。——下面是通过C++来实现双向链表的基本功能。#include //双向链表typedef int DataType;原创 2016-08-09 21:42:29 · 237 阅读 · 0 评论 -
单链表(c++实现)
单链表和顺序表能够处理的问题都差不多,但是链表的优点在于能够节省空间,空间的利用率更高,程序执行的效率更快,链表的基本操作也是面试官喜欢考察的问题之一,链表是一种基本的数据结构,下面主要是利用c++来实现链表的基本功能。//单向链表#include typedef int DataType;class SListNode{ friend class SList; //原创 2016-08-09 21:42:26 · 211 阅读 · 0 评论 -
string类(c++)
string类是c++默认提供的,但是了解string类的写法也是非常重要的,面试中有许多关于string类的题目,string类能够考察c++类和对象的掌握程度,一定程度上也考察了面试者的编程能力。 下面是string类的一些基本功能,由于面试的时间很短,在这极短的时间内全部实现string类的功能是不可能的,我们可以实现最基本的功能,类中的构造函数、析构函数、赋值,复制的功能。c原创 2016-08-09 21:42:23 · 161 阅读 · 0 评论 -
顺序表(C++实现)
顺序表是基本的数据结构,创建Seqlist类,主要包括类的默认成员函数(构造函数、析构函数、赋值运算符重载),顺序表的基本功能实现。//顺序表typedef int DataType;class Seqlist{public: Seqlist() //无参构造函数 :_array(NULL) ,_size(0) ,原创 2016-08-09 21:42:20 · 229 阅读 · 0 评论 -
类和对象—复数类
C++中较为常见的类—复数类,主要实现复数比较大小、加、减、乘、除等基本运算,通过C++类和对象进行实现。C++的类和对象是笔试、面试中容易问到的,因此,对其掌握一定要通透。下面是复数类功能的具体实现。#define _CRT_SECURE_NO_WARNINGS 1 //复数类#include #include using namespace std; class complex原创 2016-08-09 21:42:08 · 618 阅读 · 2 评论 -
面试题—链表的‘部分’翻转
问题: 给出一个单链表(不带头节点)和一个数K,请翻转此单链表?例如:1->2->3->4->5 k = 0; 翻转过后:1->2->3->4->5 1->2->3->4->5 K = 2; 翻转过后:2->1->4->3->5 1->2->3->4->5 K = 10; 翻转过后:5->4->3->2原创 2016-08-09 21:43:37 · 2222 阅读 · 0 评论